DataManager.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using static DataManager.DataAccess;
  12. using static DataManager.UIConstants;
  13. namespace DataManager
  14. {
  15. public partial class frmDataManager : Form
  16. {
  17. private DateTime defaultDatetime = DateTime.Now.AddDays(-30);
  18. private DataTable collectionTaskTable = new DataTable();
  19. private DataTable contactTaskTable;
  20. private DataTable orphanFundTable;
  21. private static int userId;
  22. public static int UserId { get => userId; set => userId = value; }
  23. public frmDataManager(int userid)
  24. {
  25. UserId = userid;
  26. InitializeComponent();
  27. InitializeData();
  28. }
  29. private void InitializeData()
  30. {
  31. #region Contact Task Tab
  32. DataTable dt_dm_user_1 = DataAccess.Get_dm_user(null, 1);
  33. dt_dm_user_1.Rows.Add(DataAccess.DM_NULL, 1, "全部");
  34. cmbContactor.DataSource = dt_dm_user_1;
  35. cmbContactor.DisplayMember = "username";
  36. cmbContactor.ValueMember = "userid";
  37. cmbContactor.SelectedValue = UserId;
  38. dtpContactTaskDate.Value = defaultDatetime;
  39. BindingSource bs4 = new BindingSource();
  40. Dictionary<int, string> d4 = new Dictionary<int, string>(ContactTaskType);
  41. d4.Add(DM_NULL, "全部");
  42. bs4.DataSource = d4;
  43. cmbContactTaskType.DataSource = bs4;
  44. cmbContactTaskType.DisplayMember = "Value";
  45. cmbContactTaskType.ValueMember = "Key";
  46. cmbContactTaskType.SelectedValue = (int)DM_NULL;
  47. BindingSource bs = new BindingSource();
  48. Dictionary<int, string> d = new Dictionary<int, string>(ContactTaskStatus);
  49. d.Add(DM_NULL, "全部");
  50. bs.DataSource = d;
  51. cmbContactTaskStatus.DataSource = bs;
  52. cmbContactTaskStatus.DisplayMember = "Value";
  53. cmbContactTaskStatus.ValueMember = "Key";
  54. cmbContactTaskStatus.SelectedValue = (int)DM_NULL;
  55. BindingSource bs2 = new BindingSource();
  56. Dictionary<int, string> d2 = new Dictionary<int, string>(TaskPriority);
  57. d2.Add(DM_NULL, "全部");
  58. bs2.DataSource = d2;
  59. cmbContactPriority.DataSource = bs2;
  60. cmbContactPriority.DisplayMember = "Value";
  61. cmbContactPriority.ValueMember = "Key";
  62. cmbContactPriority.SelectedValue = (int)DM_NULL;
  63. BindingSource bs3 = new BindingSource();
  64. Dictionary<int, string> d3 = new Dictionary<int, string>(CompanyAssetSize);
  65. d3.Add(DM_NULL, "全部");
  66. bs3.DataSource = d3;
  67. cmbContactCompanySize.DataSource = bs3;
  68. cmbContactCompanySize.DisplayMember = "Value";
  69. cmbContactCompanySize.ValueMember = "Key";
  70. cmbContactCompanySize.SelectedValue = (int)DM_NULL;
  71. dtpContactFollowUpDate.ShowCheckBox = true;
  72. dtpContactFollowUpDate.Checked = false;
  73. #endregion
  74. #region Collection Task Tab
  75. DataTable dt_dm_user_2 = DataAccess.Get_dm_user(null, 2);
  76. dt_dm_user_2.Rows.Add(DataAccess.DM_NULL, 2, "全部");
  77. cmbCollector.DataSource = dt_dm_user_2;
  78. cmbCollector.DisplayMember = "username";
  79. cmbCollector.ValueMember = "userid";
  80. cmbCollector.SelectedValue = UserId;
  81. dtpCollectionTaskDate.Value = defaultDatetime;
  82. BindingSource bs5 = new BindingSource();
  83. Dictionary<int, string> d5 = new Dictionary<int, string>(CollectionTaskType);
  84. d5.Add(DM_NULL, "全部");
  85. bs5.DataSource = d5;
  86. cmbCollectionTaskType.DataSource = bs5;
  87. cmbCollectionTaskType.DisplayMember = "Value";
  88. cmbCollectionTaskType.ValueMember = "Key";
  89. cmbCollectionTaskType.SelectedValue = (int)DM_NULL;
  90. BindingSource bs6 = new BindingSource();
  91. Dictionary<int, string> d6 = new Dictionary<int, string>(CollectionTaskStatus);
  92. d6.Add(DM_NULL, "全部");
  93. bs6.DataSource = d6;
  94. cmbCollectionTaskStatus.DataSource = bs6;
  95. cmbCollectionTaskStatus.DisplayMember = "Value";
  96. cmbCollectionTaskStatus.ValueMember = "Key";
  97. cmbCollectionTaskStatus.SelectedValue = (int)DM_NULL;
  98. #endregion
  99. }
  100. #region Contact Tab
  101. private void LoadContactTaskGrid()
  102. {
  103. ContactTask task = CreateContactTaskFromUI();
  104. int? userid = task.UserId;
  105. if (userid == DM_NULL) userid = null;
  106. short? taskType = task.TaskType;
  107. if(taskType == DM_NULL) taskType = null;
  108. sbyte? isvalid = task.Isvalid;
  109. if(isvalid == DM_NULL) isvalid = null;
  110. sbyte? priority = task.Priority;
  111. if (priority == DM_NULL) priority = null;
  112. sbyte? companyAssetSize = task.CompanyAssetSize;
  113. if(companyAssetSize == DM_NULL) companyAssetSize = null;
  114. contactTaskTable = DataAccess.Get_dm_contact_task(userid, null, task.CompanyId, task.CompanyShortName,
  115. task.TaskDate, taskType, isvalid, priority,
  116. task.FollowUpDate, companyAssetSize);
  117. grdContactTask.DataSource = contactTaskTable;
  118. grdContactTask.Columns["task_id"].HeaderText = "ID";
  119. grdContactTask.Columns["company_short_name"].HeaderText = "公司";
  120. grdContactTask.Columns["task_date"].HeaderText = "日期";
  121. grdContactTask.Columns["task_type_name"].HeaderText = "任务";
  122. grdContactTask.Columns["isvalid_name"].HeaderText = "状态";
  123. grdContactTask.Columns["priority_name"].HeaderText = "优先级";
  124. grdContactTask.Columns["follow_up_date"].HeaderText = "跟进日";
  125. grdContactTask.Columns["company_asset_size_name"].HeaderText = "规模";
  126. grdContactTask.Columns["creator_name"].HeaderText = "创建";
  127. grdContactTask.Columns["updater_name"].HeaderText = "更新";
  128. grdContactTask.Columns["updatetime"].HeaderText = "更新时间";
  129. grdContactTask.Columns["company_id"].Visible = false;
  130. grdContactTask.Columns["task_type"].Visible = false;
  131. grdContactTask.Columns["isvalid"].Visible = false;
  132. grdContactTask.Columns["priority"].Visible = false;
  133. grdContactTask.Columns["company_asset_size"].Visible = false;
  134. grdContactTask.Columns["creatorid"].Visible = false;
  135. grdContactTask.Columns["createtime"].Visible = false;
  136. grdContactTask.Columns["updaterid"].Visible = false;
  137. grdContactTask.Columns["company_short_name"].DefaultCellStyle.ForeColor = Color.DodgerBlue;
  138. grdContactTask.Columns["company_short_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
  139. lblContactTaskCount.Text = contactTaskTable.Rows.Count.ToString();
  140. }
  141. private ContactTask CreateContactTaskFromUI()
  142. {
  143. ContactTask task = new ContactTask();
  144. task.UserId = int.Parse(cmbContactor.SelectedValue.ToString());
  145. // 支持输 company_id或简称关键字的搜索
  146. string keywrod = txtContactCompany.Text.Trim();
  147. if (keywrod == String.Empty)
  148. {
  149. task.CompanyId = null;
  150. task.CompanyShortName = null;
  151. } else if (keywrod.Length == 10 && keywrod.ToUpper().Substring(0, 2) == "CO")
  152. {
  153. task.CompanyId = keywrod.ToUpper();
  154. task.CompanyShortName = null;
  155. } else
  156. {
  157. task.CompanyId = null;
  158. task.CompanyShortName = keywrod;
  159. }
  160. task.TaskDate = DateTime.Parse(dtpContactTaskDate.Text.ToString());
  161. task.TaskType = short.Parse(cmbContactTaskType.SelectedValue.ToString());
  162. task.Isvalid = sbyte.Parse(cmbContactTaskStatus.SelectedValue.ToString());
  163. task.Priority = sbyte.Parse(cmbContactPriority.SelectedValue.ToString());
  164. task.CompanyAssetSize = sbyte.Parse(cmbContactCompanySize.SelectedValue.ToString());
  165. if (dtpContactFollowUpDate.Checked == true)
  166. {
  167. task.FollowUpDate = DateTime.Parse(dtpContactFollowUpDate.Text.ToString());
  168. } else {
  169. task.FollowUpDate = null;
  170. };
  171. return task;
  172. }
  173. private void btnContactSearch_Click(object sender, EventArgs e)
  174. {
  175. LoadContactTaskGrid();
  176. }
  177. private void grdContactTask_CellClick(object sender, DataGridViewCellEventArgs e)
  178. {
  179. int rowIndex = e.RowIndex;
  180. int columnIndex = e.ColumnIndex;
  181. if (columnIndex < 0 || rowIndex < 0) return;
  182. DataRow row = contactTaskTable.Rows[rowIndex];
  183. if (columnIndex == grdContactTask.Columns["company_short_name"].Index)
  184. // 弹出公司页面
  185. {
  186. UICompany frmCompany = new UICompany(row.Field<string>("company_id"), UserId);
  187. frmCompany.Show();
  188. }
  189. else
  190. // 弹出联系任务编辑框
  191. {
  192. ContactTask task = new ContactTask(UserId, row.Field<int>("task_id"), row.Field<string>("company_id"), row.Field<string>("company_short_name"),
  193. row.Field<DateTime>("task_date"), row.Field<short>("task_type"), row.Field<sbyte>("isvalid"), row.Field<sbyte>("priority"),
  194. row.Field<DateTime?>("follow_up_date"), row.Field<sbyte?>("company_asset_size"),
  195. row.Field<int?>("creatorid"), row.Field<string>("creator_name"), row.Field<DateTime?>("createtime"),
  196. row.Field<int?>("updaterid"), row.Field<string>("updater_name"), row.Field<DateTime?>("updatetime"));
  197. if (task != null)
  198. {
  199. frmContactTask ctk = new frmContactTask(task);
  200. ctk.ShowDialog();
  201. // 刷新 grid 数据
  202. if (ctk.DialogResult == DialogResult.OK)
  203. {
  204. LoadContactTaskGrid();
  205. }
  206. }
  207. }
  208. }
  209. private void btnAddContactTask_Click(object sender, EventArgs e)
  210. {
  211. frmContactTask ctk = new frmContactTask(UserId);
  212. ctk.ShowDialog();
  213. // 刷新 grid 数据
  214. if (ctk.DialogResult == DialogResult.OK)
  215. {
  216. LoadContactTaskGrid();
  217. }
  218. }
  219. #endregion
  220. #region Collection Tab
  221. private void LoadCollectionTaskGrid()
  222. {
  223. CollectionTask task = CreatecCollectionTaskFromUI();
  224. int? userId = task.UserId;
  225. if (userId == DM_NULL) userId = null;
  226. short? taskType = task.TaskType;
  227. if (taskType == DM_NULL) taskType = null;
  228. sbyte? isvalid = task.Isvalid;
  229. if (isvalid == DM_NULL) isvalid = null;
  230. collectionTaskTable = DataAccess.Get_dm_collection_task(userId, null, task.ProviderId, task.ProviderName,
  231. task.TaskDate, taskType, task.EntityId, task.EntityName,
  232. isvalid);
  233. grdCollectionTask.DataSource = collectionTaskTable;
  234. grdCollectionTask.Columns["task_id"].HeaderText = "ID";
  235. grdCollectionTask.Columns["provider_name"].HeaderText = "来源";
  236. grdCollectionTask.Columns["task_date"].HeaderText = "日期";
  237. grdCollectionTask.Columns["task_type_name"].HeaderText = "任务";
  238. grdCollectionTask.Columns["entity_name"].HeaderText = "主题";
  239. grdCollectionTask.Columns["err_message"].HeaderText = "详情";
  240. grdCollectionTask.Columns["isvalid_name"].HeaderText = "状态";
  241. grdCollectionTask.Columns["creator_name"].HeaderText = "创建";
  242. grdCollectionTask.Columns["updater_name"].HeaderText = "更新";
  243. grdCollectionTask.Columns["updatetime"].HeaderText = "更新时间";
  244. grdCollectionTask.Columns["provider_id"].Visible = false;
  245. grdCollectionTask.Columns["task_type"].Visible = false;
  246. grdCollectionTask.Columns["entity_id"].Visible = false;
  247. grdCollectionTask.Columns["isvalid"].Visible = false;
  248. grdCollectionTask.Columns["creatorid"].Visible = false;
  249. grdCollectionTask.Columns["createtime"].Visible = false;
  250. grdCollectionTask.Columns["updaterid"].Visible = false;
  251. //grdCollectionTask.Columns["provider_name"].DefaultCellStyle.ForeColor = Color.DodgerBlue;
  252. grdCollectionTask.Columns["entity_name"].DefaultCellStyle.ForeColor = Color.DodgerBlue;
  253. grdCollectionTask.Columns["entity_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
  254. lblCollectionTaskCount.Text = collectionTaskTable.Rows.Count.ToString();
  255. }
  256. private CollectionTask CreatecCollectionTaskFromUI()
  257. {
  258. CollectionTask task = new CollectionTask();
  259. task.UserId = int.Parse(cmbCollector.SelectedValue.ToString());
  260. string providerKeyword = txtCollectionProvider.Text.Trim();
  261. if (providerKeyword == string.Empty)
  262. {
  263. task.ProviderId = null;
  264. task.ProviderName = null;
  265. }
  266. else if (providerKeyword.Length == 10 && providerKeyword.Substring(0, 2).ToUpper() == "CO")
  267. {
  268. task.ProviderId = providerKeyword.ToUpper();
  269. task.ProviderName = null;
  270. }
  271. else
  272. {
  273. task.ProviderId = null;
  274. task.ProviderName = providerKeyword;
  275. }
  276. task.TaskDate = DateTime.Parse(dtpCollectionTaskDate.Text.ToString());
  277. task.TaskType = short.Parse(cmbCollectionTaskType.SelectedValue.ToString());
  278. // 支持输入fund_id或简称关键字的搜索
  279. string entityKeyword = txtCollectionEntity.Text.Trim();
  280. if (entityKeyword == string.Empty)
  281. {
  282. task.EntityId = null;
  283. task.EntityName = null;
  284. }
  285. else if (entityKeyword.Length == 10 && Regex.Match(entityKeyword.ToUpper(), "^[M|H]F").Success)
  286. {
  287. task.EntityId = entityKeyword.ToUpper();
  288. task.EntityName = null;
  289. }
  290. else
  291. {
  292. task.EntityId = null;
  293. task.EntityName = entityKeyword;
  294. }
  295. task.Isvalid = sbyte.Parse(cmbCollectionTaskStatus.SelectedValue.ToString());
  296. return task;
  297. }
  298. private void btnCollectionSearch_Click(object sender, EventArgs e)
  299. {
  300. LoadCollectionTaskGrid();
  301. }
  302. private void grdCollectionTask_CellClick(object sender, DataGridViewCellEventArgs e)
  303. {
  304. int rowIndex = e.RowIndex;
  305. int columnIndex = e.ColumnIndex;
  306. if (columnIndex < 0 || rowIndex < 0) return;
  307. DataRow row = collectionTaskTable.Rows[rowIndex];
  308. if (columnIndex == grdCollectionTask.Columns["entity_name"].Index )
  309. // 弹出基金页面
  310. {
  311. string entityId = row["entity_id"].ToString();
  312. if (entityId.Length == 10 && Regex.Match(entityId, "^[HM]F").Success)
  313. {
  314. UIFund frmFund = new UIFund(entityId, UserId);
  315. frmFund.Show();
  316. }
  317. }
  318. else
  319. // 弹出采集任务编辑框
  320. {
  321. CollectionTask task = new CollectionTask(UserId, row.Field<int>("task_id"), row.Field<string>("provider_id"), row.Field<string>("provider_name"),
  322. row.Field<DateTime>("task_date"), row.Field<short>("task_type"),
  323. row.Field<string>("entity_id"), row.Field<string>("entity_name"),
  324. row.Field<string>("err_message"), row.Field<sbyte>("isvalid"),
  325. row.Field<int?>("creatorid"), row.Field<string>("creator_name"), row.Field<DateTime?>("createtime"),
  326. row.Field<int?>("updaterid"), row.Field<string>("updater_name"), row.Field<DateTime?>("updatetime"));
  327. if (task != null)
  328. {
  329. UICollectionTask ctk = new UICollectionTask(task);
  330. ctk.ShowDialog();
  331. // 刷新 grid 数据
  332. if (ctk.DialogResult == DialogResult.OK)
  333. {
  334. LoadCollectionTaskGrid();
  335. }
  336. }
  337. }
  338. }
  339. private void btnAddCollectionTask_Click(object sender, EventArgs e)
  340. {
  341. UICollectionTask ctk = new UICollectionTask(UserId);
  342. ctk.ShowDialog();
  343. // 刷新 grid 数据
  344. if (ctk.DialogResult == DialogResult.OK)
  345. {
  346. LoadCollectionTaskGrid();
  347. }
  348. }
  349. #endregion
  350. #region Data - Fund
  351. private void LoadFundGrid()
  352. {
  353. string keyword = txtFundKeyword.Text.Trim();
  354. if (keyword == string.Empty) { keyword = null; }
  355. // 只搜私募
  356. DataTable dt = DataAccess.Search_dm_fund(RaiseType.FirstOrDefault(x=>x.Value== "私募").Key, keyword);
  357. grdFundList.DataSource = dt;
  358. grdFundList.DefaultCellStyle.ForeColor = Color.DimGray;
  359. grdFundList.Columns["fund_id"].Visible = false;
  360. grdFundList.Columns["fund_name"].HeaderText = "基金全名";
  361. grdFundList.Columns["fund_short_name"].HeaderText = "基金简称";
  362. grdFundList.Columns["company_id"].Visible = false;
  363. grdFundList.Columns["company_short_name"].HeaderText = "公司简称";
  364. grdFundList.Columns["strategy"].HeaderText = "策略分类";
  365. grdFundList.Columns["substrategy"].HeaderText = "二级分类";
  366. grdFundList.Columns["max_price_date"].HeaderText = "最新净值";
  367. grdFundList.Columns["company_short_name"].DefaultCellStyle.ForeColor = Color.DodgerBlue;
  368. grdFundList.Columns["max_price_date"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
  369. grdFundList.Columns["fund_short_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
  370. ToolStripStatusLabel label = new ToolStripStatusLabel();
  371. label.Text = "记录条数:" + dt.Rows.Count.ToString();
  372. sstData.Items.Clear();
  373. sstData.Items.Add(label);
  374. }
  375. private void btnSearchFund_Click(object sender, EventArgs e)
  376. {
  377. LoadFundGrid();
  378. }
  379. private void grdFundList_CellClick(object sender, DataGridViewCellEventArgs e)
  380. {
  381. int rowIndex = e.RowIndex;
  382. int columnIndex = e.ColumnIndex;
  383. if (columnIndex < 0 || rowIndex < 0) return;
  384. DataGridViewRow row = grdFundList.Rows[rowIndex];
  385. if (columnIndex == grdFundList.Columns["company_short_name"].Index)
  386. // 弹出公司页面
  387. {
  388. string entityId = row.Cells["company_id"].Value.ToString().ToUpper();
  389. if (entityId.Length == 10 && Regex.Match(entityId, "^CO").Success)
  390. {
  391. UICompany frm = new UICompany(entityId, UserId);
  392. frm.Show();
  393. }
  394. }
  395. else
  396. // 弹出基金页面
  397. {
  398. string entityId = row.Cells["fund_id"].Value.ToString().ToUpper();
  399. if (entityId.Length == 10 && Regex.Match(entityId, "^[M|H]F").Success)
  400. {
  401. UIFund frm = new UIFund(entityId, UserId);
  402. frm.Show();
  403. }
  404. }
  405. }
  406. #endregion
  407. #region Data - Company
  408. private void LoadCompanyGrid()
  409. {
  410. string keyword = txtCompanyKeyword.Text.Trim();
  411. if (keyword == string.Empty) { keyword = null; }
  412. // 只搜私募
  413. DataTable dt = DataAccess.Search_dm_company(1, keyword);
  414. grdCompanyList.DataSource = dt;
  415. grdCompanyList.DefaultCellStyle.ForeColor = Color.DimGray;
  416. grdCompanyList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
  417. //grdCompanyList.Columns["company_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
  418. grdCompanyList.Columns["company_id"].Visible = false;
  419. grdCompanyList.Columns["company_name"].HeaderText = "公司全名";
  420. grdCompanyList.Columns["company_short_name"].HeaderText = "公司简称";
  421. grdCompanyList.Columns["company_asset_size"].Visible = false;
  422. grdCompanyList.Columns["company_asset_size_name"].HeaderText = "管理规模";
  423. grdCompanyList.Columns["company_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
  424. ToolStripStatusLabel label = new ToolStripStatusLabel();
  425. label.Text = "记录条数:" + dt.Rows.Count.ToString();
  426. sstData.Items.Clear();
  427. sstData.Items.Add(label);
  428. }
  429. private void btnSearchCompany_Click(object sender, EventArgs e)
  430. {
  431. LoadCompanyGrid();
  432. }
  433. private void grdCompanyList_CellClick(object sender, DataGridViewCellEventArgs e)
  434. {
  435. int rowIndex = e.RowIndex;
  436. int columnIndex = e.ColumnIndex;
  437. if (columnIndex < 0 || rowIndex < 0) return;
  438. DataGridViewRow row = grdCompanyList.Rows[rowIndex];
  439. string entityId = row.Cells["company_id"].Value.ToString().ToUpper();
  440. if (entityId.Length == 10 && Regex.Match(entityId, "^CO").Success)
  441. {
  442. UICompany frm = new UICompany(entityId, UserId);
  443. frm.Show();
  444. }
  445. }
  446. #endregion
  447. #region Reports
  448. #region Orphan Fund
  449. private void LoadOrphanFund(DataTable dt)
  450. {
  451. if(dt == null)
  452. dt = DataAccess.Get_dm_report_orphan_fund(UserId);
  453. grdOrphanFund.DataSource = dt;
  454. grdOrphanFund.Columns["id"].Visible = false;
  455. grdOrphanFund.Columns["provider_id"].Visible = false;
  456. grdOrphanFund.Columns["provider_name"].HeaderText = "数据源";
  457. grdOrphanFund.Columns["external_id"].HeaderText = "外部ID";
  458. grdOrphanFund.Columns["isvalid"].HeaderText = "状态";
  459. grdOrphanFund.Columns["creatorid"].Visible = false;
  460. grdOrphanFund.Columns["creator_name"].HeaderText = "创建";
  461. grdOrphanFund.Columns["createtime"].HeaderText = "创建时间";
  462. grdOrphanFund.Columns["updaterid"].Visible = false;
  463. grdOrphanFund.Columns["updater_name"].HeaderText = "更新";
  464. grdOrphanFund.Columns["updatetime"].HeaderText = "更新时间";
  465. grdOrphanFund.Columns["provider_name"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
  466. grdOrphanFund.Columns["external_id"].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
  467. }
  468. private void btnOrphanFundSearch_Click(object sender, EventArgs e)
  469. {
  470. DataTable dt;
  471. string providerName = txtOrphanProvider.Text.Trim();
  472. if(orphanFundTable == null)
  473. {
  474. LoadOrphanFund(orphanFundTable);
  475. }
  476. else
  477. {
  478. if (providerName != string.Empty)
  479. dt = orphanFundTable.Select("provider_name LIKE '%" + providerName + "%'", "id DESC").CopyToDataTable();
  480. else
  481. dt = orphanFundTable;
  482. LoadOrphanFund(dt);
  483. }
  484. }
  485. #endregion
  486. private void grdOrphanFund_CellClick(object sender, DataGridViewCellEventArgs e)
  487. {
  488. int rowIndex = e.RowIndex;
  489. if (rowIndex < 0) return;
  490. DataGridViewRow row = grdOrphanFund.Rows[rowIndex];
  491. // 弹出基金页面
  492. string provider_id = row.Cells["provider_id"].Value.ToString();
  493. string external_id = row.Cells["external_id"].Value.ToString();
  494. UIFund frmFund = new UIFund(provider_id, external_id, UserId);
  495. frmFund.ShowDialog();
  496. if (frmFund.DialogResult == DialogResult.OK)
  497. {
  498. LoadOrphanFund(null);
  499. }
  500. }
  501. #endregion
  502. private void txtOrphanProvider_KeyPress(object sender, KeyPressEventArgs e)
  503. {
  504. if (e.KeyChar == 13)
  505. {
  506. btnOrphanFundSearch_Click(sender, e);
  507. }
  508. }
  509. }
  510. }