MultiValueItem.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Text;
  2. using TrendChartSDK.Entity.Base;
  3. using TrendChartSDK.Entity.TrendChart;
  4. using TrendChartSDK.Entity.TrendChartData;
  5. using TrendChartSDK.Interface;
  6. namespace TrendChartSDK.TrendChartManager
  7. {
  8. /// <summary>
  9. /// 多值项(多值多列项)
  10. /// </summary>
  11. /// <typeparam name="TEntity"></typeparam>
  12. public class MultiValueItem<TEntity> : ChartItemRepository<TEntity>, IChartItem<TEntity> where TEntity : LotteryOpenCode
  13. {
  14. private new int[] _itemIndex;
  15. /// <summary>
  16. /// 初始化
  17. /// </summary>
  18. /// <param name="cssConfig"></param>
  19. /// <param name="itemConfig"></param>
  20. public override void Init(ChartCssConfigInfo cssConfig, TrendChartItemInfo itemConfig)
  21. {
  22. DefaultInit(cssConfig, itemConfig);
  23. }
  24. /// <summary>
  25. /// 初始化遗漏
  26. /// </summary>
  27. /// <param name="trendChartCofig"></param>
  28. /// <param name="i"></param>
  29. public override void MissDataInit(TrendChartData trendChartCofig, int i)
  30. {
  31. DefaultMissDataInit(trendChartCofig, i);
  32. }
  33. /// <summary>
  34. /// 获取遗漏数据
  35. /// </summary>
  36. /// <param name="missDataType"></param>
  37. /// <returns></returns>
  38. public override string GetMissData(MissDataType missDataType)
  39. {
  40. return GetDefaultMissData(missDataType);
  41. }
  42. /// <summary>
  43. /// 设置项值
  44. /// </summary>
  45. /// <param name="entity"></param>
  46. /// <param name="lastentity"></param>
  47. /// <returns></returns>
  48. public override bool SetItemValue(TEntity entity, TEntity lastentity)
  49. {
  50. _itemIndex = new int[this._itemConfig.ItemCount];
  51. return SetMultiValueAndMiss(entity, ref _itemIndex, ref this._localMiss);
  52. }
  53. /// <summary>
  54. /// 设置项值
  55. /// </summary>
  56. /// <param name="entity"></param>
  57. /// <returns></returns>
  58. public override bool SetItemValue(TEntity entity)
  59. {
  60. _itemIndex = new int[this._itemConfig.ItemCount];
  61. return SetMultiValueAndMiss(entity, ref _itemIndex, ref this._localMiss);
  62. }
  63. /// <summary>
  64. /// 去格式化字符串
  65. /// </summary>
  66. /// <param name="fomart"></param>
  67. /// <param name="cssConfig"></param>
  68. /// <returns></returns>
  69. public override string GetFomartString(string fomart, ChartCssConfigInfo cssConfig = null)
  70. {
  71. var html = GetFomartHtml(fomart, cssConfig);
  72. var sp = new StringBuilder((html.Item1.Length + 40) * this._itemConfig.ItemCount);
  73. for (int i = 0; i < this._itemConfig.ItemCount; i++)
  74. {
  75. sp.Append(0 < this._itemIndex[i] ? GetHtml(true, html.Item1, GetlgroupAndColor(true, html.Item4), this._itemConfig.ItemString[i], i) : GetHtml(false, html.Item1, GetlgroupAndColor(false, html.Item4), _localMiss[i].ToString(), i));
  76. }
  77. return sp.ToString();
  78. }
  79. }
  80. }