ComboxSetter.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using PTMedicalInsurance.Common;
  7. using PTMedicalInsurance.Helper;
  8. using PTMedicalInsurance.Business;
  9. using Newtonsoft.Json.Linq;
  10. using System.Data;
  11. using System.Windows.Forms;
  12. namespace PTMedicalInsurance.FormSetter
  13. {
  14. class ComboxSetter
  15. {
  16. private InvokeHelper invoker = new InvokeHelper();
  17. private HisIrisServices hIS = new HisIrisServices();
  18. private MIIrisServices mIS = new MIIrisServices();
  19. public void setCbxInterfaceDataSource(Sunny.UI.UIComboBox cbx)
  20. {
  21. DataTable dt = new DataTable();
  22. JObject joRtn = mIS.getInterface();
  23. JArray jaParams = new JArray();
  24. jaParams = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));
  25. if (jaParams.Count == 0)
  26. {
  27. DataTableSetter dts = new DataTableSetter();
  28. dt = dts.setDgvInterfaceDataTable();
  29. return;
  30. }
  31. else
  32. {
  33. dt = (DataTable)jaParams.ToObject(typeof(DataTable));
  34. }
  35. dt.AcceptChanges();
  36. cbx.DataSource = dt;
  37. cbx.DisplayMember = "InterfaceName";
  38. cbx.ValueMember = "ID";
  39. }
  40. public void setCbxDictionaryDataSource(string interfaceDr, string dicType, Sunny.UI.UIComboBox cbx)
  41. {
  42. InsuServices iris = new InsuServices();
  43. DataTable dt = new DataTable();
  44. JObject joRtn = iris.getSpecDictionary(interfaceDr, dicType);
  45. JArray jaParams = new JArray();
  46. jaParams = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));
  47. if (jaParams.Count == 0)
  48. {
  49. DataTableSetter dts = new DataTableSetter();
  50. dt = dts.setDgvInterfaceDataTable();
  51. return;
  52. }
  53. else
  54. {
  55. dt = (DataTable)jaParams.ToObject(typeof(DataTable));
  56. //Global.inf.interfaceDr_Download = int.Parse(dt.Rows[0]["ID"].ToString());
  57. }
  58. dt.AcceptChanges();
  59. cbx.DataSource = dt;
  60. cbx.DisplayMember = "name";
  61. cbx.ValueMember = "code";
  62. }
  63. public string getCbxSelectedValue(Sunny.UI.UIComboBox cbx, string selectedName)
  64. {
  65. try
  66. {
  67. DataTable dt = (DataTable)cbx.DataSource;
  68. int a = cbx.SelectedIndex;
  69. return dt.Rows[a][selectedName].ToString();
  70. }
  71. catch (Exception ex)
  72. {
  73. return "";
  74. }
  75. }
  76. #region DBLookupCombox设置
  77. private DataTable GetDBLKComboxTable(string sqlStr)
  78. {
  79. InvokeHelper invoker = new InvokeHelper();
  80. dynamic joInparm = new JObject();
  81. dynamic joTmp = new JObject();
  82. joTmp.sqlStr = sqlStr;
  83. JArray jaParams = new JArray();
  84. jaParams.Add(joTmp);
  85. joInparm.Add("params", JArray.FromObject(jaParams));
  86. joInparm.code = "09010014";
  87. string inParam = joInparm.ToString();
  88. JObject joRtn = invoker.invokeInsuService(inParam, "获取下拉框消息");
  89. //dynamic jsonRtn = JsonConvert.DeserializeObject(strRtn);
  90. DataTable dt = (DataTable)joRtn["result"].ToObject(typeof(DataTable));
  91. //dt.Columns[0].ColumnName = "编码";d
  92. //dt.Columns[1].ColumnName = "名称";
  93. //dt.Columns[2].ColumnName = "拼音查找码";
  94. return dt;
  95. }
  96. public DataTable GetDBLKComboxTable(JObject jo,string path)
  97. {
  98. JArray ja = JArray.Parse(JsonHelper.getDestValue(jo,path));
  99. DataTable dt = (DataTable)ja.ToObject(typeof(DataTable));
  100. return dt;
  101. }
  102. public DataTable GetDBLKComboxTable(JArray ja)
  103. {
  104. DataTable dt = (DataTable)ja.ToObject(typeof(DataTable));
  105. return dt;
  106. }
  107. private void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, string sqlStr)
  108. {
  109. SetDBLKCombox(ref dblcbx, GetDBLKComboxTable(sqlStr));
  110. }
  111. public void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, DataTable dt)
  112. {
  113. dblcbx.sDisplayField = "Code,Name,SearchCode";
  114. dblcbx.sDisplayMember = "名称";
  115. dblcbx.sKeyWords = "Code,SearchCode";
  116. dblcbx.DataSource = dt;
  117. dblcbx.RowFilterVisible = true;
  118. dblcbx.TextBox.Width = 400;
  119. dblcbx.DataGridView.Width = 400;
  120. dblcbx.DataGridView.Columns[0].Name = "编码";
  121. dblcbx.DataGridView.Columns[1].Name = "名称";
  122. dblcbx.DataGridView.Columns[2].Name = "查找码";
  123. dblcbx.DataGridView.Columns[0].Width = 100;
  124. dblcbx.DataGridView.Columns[1].Width = 200;
  125. }
  126. /// <summary>
  127. /// 格式化combobox为下拉框指定格式
  128. /// </summary>
  129. /// <param name="sourceTable"></param>
  130. /// <param name="code"></param>
  131. /// <param name="desc"></param>
  132. /// <returns></returns>
  133. public DataTable FormatComboxDatasource(DataTable sourceTable, string code, string desc)
  134. {
  135. // 使用 LINQ 查询源 DataTable
  136. var query = from row in sourceTable.AsEnumerable()
  137. select new { Code = row.Field<string>(code), Name = row.Field<string>(desc) };
  138. // 创建新的 DataTable
  139. DataTable resultTable = new DataTable();
  140. resultTable.Columns.Add("Code", typeof(string));
  141. resultTable.Columns.Add("Name", typeof(string));
  142. resultTable.Columns.Add("SearchCode", typeof(string));
  143. // 将查询结果添加到新的 DataTable
  144. foreach (var item in query)
  145. {
  146. resultTable.Rows.Add(item.Code, item.Name, item.Name);
  147. }
  148. return resultTable;
  149. }
  150. public void AfterSelector(object sender, PTControl.AfterSelectorEventArgs e, out string code, out string name)
  151. {
  152. DataGridViewRow row = e.Value as DataGridViewRow;
  153. DataRowView dataRow = row.DataBoundItem as DataRowView;
  154. code = dataRow["Code"].ToString().Trim();
  155. name = dataRow["Name"].ToString().Trim();
  156. }
  157. #endregion
  158. }
  159. }