由於剛開始用物件導向的思維來寫程式,很多地方尚未適應,而且時程也有點趕,所以做出來的東西,很有機會慘不忍睹。上一篇所提到的全部操作效果,初期的實作程式碼如本文底部所示,整個程式碼就是資料上傳 form 的 code-behind。

各位可以看到,程式非常雜亂,有處理常數的,有處理控制項狀態的,有做表單驗證的,也有處理 json 格式的,還有處理資料庫存取的,這些程式碼都集中在同一個 code-behind 裡。另外還有更要命的,各位應該不難發現,程式裡散佈很多結構相同的 switch case 片段。現在回想起來,當時在寫這些程式,經常會有頭昏眼花,程式碼寫錯地方的情況,因為同一個畫面有太多類似的程式片段,加上現在普遍都是寬螢幕,更不利於看程式,所以經常搞不清楚上下文。

code-behind 是純粹的用戶端程式區,也是除了使用者之外,最接近操作介面的地方。換個方式來理解,code-behind 與 winform 是一體兩面,也可以說 code-behind 是兩者之間的溝通橋樑,因此寫在這個區塊的程式碼,也應該要單純化,不應該夾雜太多面向。就以這個資料上傳功能為例,最理想的情況,它的 code-behind 應該只有一些變數或常數的初始化,還有幾個主要操作的呼叫程式碼。

 

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Configuration;
  5 using System.Data;
  6 using System.Drawing;
  7 using System.Text;
  8 using System.Text.RegularExpressions;
  9 using System.Windows.Forms;
 10 
 11 
 12 namespace SybaseUtility
 13 {
 14     public partial class fSybaseSender : Form
 15     {
 16         private string errorMsgText = "";
 17         private DataTable dtOriginal;
 18         private string[] HeaderText;
 19         private string[] DbColumn;
 20         private string filterString;
 21         private string PrePickedItems = "";
 22         private string PreAllItems = "";
 23         private string finalItems = "";
 24         private string SendMode = "";
 25         private string ResetMode = "";
 26         Garages garages = new Garages();
 27         JsonBodies Json = new JsonBodies();
 28 
 29 
 30         public fSybaseSender()
 31         {
 32             InitializeComponent();
 33         }
 34 
 35         private void cbxDataType_SelectedIndexChanged(object sender, EventArgs e)
 36         {
 37             labKeyword.Text = "";
 38 
 39             switch (cbxDataType.SelectedItem.ToString())
 40             {
 41                 case "客户资料":
 42                 case "维修历史":
 43                 case "会员卡资料":
 44                     labKeyword.Text = "车主或车牌过滤";
 45                     break;
 46 
 47                 case "销售单":
 48                     labKeyword.Text = "客户或业务过滤";
 49                     break;
 50 
 51                 case "积分兑换项目":
 52                     break;
 53             }
 54         }
 55 
 56         private void rbSended_CheckedChanged(object sender, EventArgs e)
 57         {
 58             btnSendAll.Enabled = false;
 59             btnSendPickup.Enabled = false;
 60             btnPreview.Enabled = true;
 61             btnResetAll.Enabled = true;
 62             btnResetPickup.Enabled = true;
 63         }
 64 
 65         private void rbUnSend_CheckedChanged(object sender, EventArgs e)
 66         {
 67             btnSendAll.Enabled = true;
 68             btnSendPickup.Enabled = true;
 69             btnPreview.Enabled = true;
 70             btnResetAll.Enabled = false;
 71             btnResetPickup.Enabled = false;
 72         }
 73 
 74         private void btnPreview_Click(object sender, EventArgs e)
 75         {
 76             errorMsgText = "";
 77             Validation();
 78             dtOriginal = null;
 79 
 80             if (errorMsgText.Length == 0)
 81             {
 82                 Prepare();
 83                 WholeBind();
 84             }
 85         }
 86 
 87         private void btnSendAll_Click(object sender, EventArgs e)
 88         {
 89             this.Enabled = false;
 90             errorMsgText = "";
 91             Validation();
 92 
 93             if (errorMsgText.Length == 0)
 94             {
 95                 SendMode = "All";
 96                 Prepare();
 97                 finalItems = (PreAllItems.Length > 0) ? PreAllItems.Substring(0, PreAllItems.LastIndexOf(",")) : "";
 98                 JsonSendOut();
 99                 WholeBind();
100             }
101         }
102 
103         private void btnSendPickup_Click(object sender, EventArgs e)
104         {
105             errorMsgText = "";
106             Validation();
107 
108 
109             if (errorMsgText.Length == 0)
110             {
111                 SendMode = "Pick";
112                 Prepare();
113                 finalItems = (PrePickedItems.Length > 0) ? PrePickedItems.Substring(0, PrePickedItems.LastIndexOf(",")) : "";
114                 JsonSendOut();
115                 WholeBind();
116             }
117         }
118 
119         private void btnResetAll_Click(object sender, EventArgs e)
120         {
121             errorMsgText = "";
122             Validation();
123 
124             if (errorMsgText.Length == 0)
125             {
126                 ResetMode = "All";
127                 Prepare();
128                 finalItems = (PreAllItems.Length > 0) ? PreAllItems.Substring(0, PreAllItems.LastIndexOf(",")) : "";
129                 ResetStatus();
130                 WholeBind();
131             }
132         }
133 
134         private void btnResetPickup_Click(object sender, EventArgs e)
135         {
136             errorMsgText = "";
137             Validation();
138 
139             if (errorMsgText.Length == 0)
140             {
141                 ResetMode = "Pick";
142                 Prepare();
143                 finalItems = (PrePickedItems.Length > 0) ? PrePickedItems.Substring(0, PrePickedItems.LastIndexOf(",")) : "";
144                 ResetStatus();
145                 WholeBind();
146             }
147         }
148 
149         private void HasDataType(string msg)
150         {
151             if (cbxDataType.SelectedIndex == -1)
152             {
153                 errorMsgText += msg + "\n";
154             }
155         }
156 
157         private void HasSendStatus(string msg)
158         {
159             if (rbSended.Checked == false && rbUnSend.Checked == false)
160             {
161                 errorMsgText += msg + "\n";
162             }
163         }
164 
165         private void Validation()
166         {
167             HasDataType("没有选定数据类型");
168             HasSendStatus("没有设置上传状态");
169 
170             if (errorMsgText.Length != 0)
171             {
172                 MessageBox.Show(errorMsgText);
173             }
174         }
175 
176         private void fSybaseSender_Load(object sender, EventArgs e)
177         {
178             garages.IsBindWeChat = (ConfigurationManager.AppSettings["IsBand"] == "1") ? true : false;
179             garages.ID = ConfigurationManager.AppSettings["xlcID"];
180             garages.Title = ConfigurationManager.AppSettings["xlcCaption"];
181             garages.WeChatOpenID = ConfigurationManager.AppSettings["WXOpenID"];
182         }
183 
184         private void Prepare()
185         {
186             switch (cbxDataType.SelectedItem.ToString())
187             {
188                 case "客户资料":
189                     PrePickedItems = GetCheckedValue(dgvMasterPreview, 5);
190                     PreAllItems = GetWholeValue(dgvMasterPreview, 5);
191                     filterString = "mc Like '%" + tbKeyword.Text + "%' Or forshort Like '%" + tbKeyword.Text + "%'";
192                     HeaderText = new string[] { "客户名称", "未知", "未知", "简拼", "客户编码", "固话", "移动电话", "负责人", "地址", "邮编", "网站", "电邮", "QQ", "开户银行", "银行卡号", "传真", "客户来源", "客户类型", "所在地区", "客户等级", "所属员工", "事实客户", "建档日期", "未知日期", "行业", "产品", "自定三", "法人", "自定五", "备注", "简称", " 短简拼", "所属部门", "是否共享", "销售折扣", "是否会员", "会员卡号", "积分", "上传状态", "车主名称", "车型", "发动机号", "车架号", "保险种类", "保险起始日", "保险终止日", "行驶证年审", "驾驶证年审", "已审", "整车号", "证件号", "车身颜色" };
193                     DbColumn = new string[] { "mc", "tybz", "qc", "pycode", "customer_id", "phone", "mobile", "linkman", "address", "postcode", "web", "email", "oicq", "bank", "banknumber", "fax", "custsource", "custtype", "custarea", "custgrade", "custattach", "custflag", "regidate", "nextdate", "custom1", "custom2", "custom3", "custom4", "custom5", "memo", "forshort", "shortpy", "dept", "shares", "xszk", "vipfalg", "vipnumber", "integral", "upload", "cz", "cx", "fdjhm", "cjhm", "bxzl", "bx_dates", "bx_datee", "ns_date", "sc_date", "ischeck", "zchm", "zjhm", "csys" };
194                     break;
195 
196                 case "会员卡资料":
197                     PrePickedItems = GetCheckedValue(dgvMasterPreview, 2);
198                     PreAllItems = GetWholeValue(dgvMasterPreview, 2);
199                     filterString = "cz Like '%" + tbKeyword.Text + "%' Or cp Like '%" + tbKeyword.Text + "%'";
200                     HeaderText = new string[] { "customer_id", "vipno", "cz", "mobile", "address", "phone", "id", "birthday", "vipclass", "viptype", "vippwd", "integral", "integrals", "integraled", "card_date", "card_dates", "card_datee", "card_ysje", "card_ssje", "card_ye", "xszk", "wxzk", "cx", "fdjhm", "cjhm", "byzq", "byrq", "ns_date", "ns_jsz", "tran", "users", "zt", "cp", "byrq_next", "other1", "comp_code" };
201                     DbColumn = new string[] { "customer_id", "vipno", "cz", "mobile", "address", "phone", "id", "birthday", "vipclass", "viptype", "vippwd", "integral", "integrals", "integraled", "card_date", "card_dates", "card_datee", "card_ysje", "card_ssje", "card_ye", "xszk", "wxzk", "cx", "fdjhm", "cjhm", "byzq", "byrq", "ns_date", "ns_jsz", "tran", "users", "zt", "cp", "byrq_next", "other1", "comp_code" };
202                     break;
203 
204                 case "销售单":
205                     PrePickedItems = GetCheckedValue(dgvMasterPreview, 2);
206                     PreAllItems = GetWholeValue(dgvMasterPreview, 2);
207                     filterString = "khmc Like '%" + tbKeyword.Text + "%'";
208                     HeaderText = new string[] { "xh", "yw_code", "khmc", "rq", "je", "zk", "fphm", "bjdh", "czr", "zje", "zcb", "zt", "bz", "xszt", "xs_id", "memo", "customer_id", "vipno", "download", "ywy" };
209                     DbColumn = new string[] { "xh", "yw_code", "khmc", "rq", "je", "zk", "fphm", "bjdh", "czr", "zje", "zcb", "zt", "bz", "xszt", "xs_id", "memo", "customer_id", "vipno", "download", "ywy" };
210                     break;
211 
212                 case "维修历史":
213                     PrePickedItems = GetCheckedValue(dgvMasterPreview, 2);
214                     PreAllItems = GetWholeValue(dgvMasterPreview, 2);
215                     filterString = "cz Like '%" + tbKeyword.Text + "%' Or cp Like '%" + tbKeyword.Text + "%'";
216                     HeaderText = new string[] { "xh", "yw_code", "yw_date", "cp", "cx", "cz", "jcr", "gzk", "fdjhm", "cjhm", "jc_date", "xllb", "gjwg_date", "gjxlfy", "gjljfy", "jclc", "dw", "yl", "khdz", "lxr", "lxdh", "js_date", "cc_date", "jsfs", "zje", "yj", "wxfzj", "wxzk", "wxcb", "clfzj", "clzk", "clcb", "fjfzj", "fjfzk", "fjfcb", "djzt", "zt", "xszt", "sxr", "fphm", "czdh", "jsd_id", "khly", "chunyou", "csys", "jxdw", "customer_id", "download", "gc_date", "zchm", "zjhm", "modify_control" };
217                     DbColumn = new string[] { "xh", "yw_code", "yw_date", "cp", "cx", "cz", "jcr", "gzk", "fdjhm", "cjhm", "jc_date", "xllb", "gjwg_date", "gjxlfy", "gjljfy", "jclc", "dw", "yl", "khdz", "lxr", "lxdh", "js_date", "cc_date", "jsfs", "zje", "yj", "wxfzj", "wxzk", "wxcb", "clfzj", "clzk", "clcb", "fjfzj", "fjfzk", "fjfcb", "djzt", "zt", "xszt", "sxr", "fphm", "czdh", "jsd_id", "khly", "chunyou", "csys", "jxdw", "customer_id", "download", "gc_date", "zchm", "zjhm", "modify_control" };
218                     break;
219 
220                 case "积分兑换项目":
221                     PrePickedItems = GetCheckedValue(dgvMasterPreview, 1);
222                     PreAllItems = GetWholeValue(dgvMasterPreview, 1);
223                     filterString = "jl_item Like '%" + tbKeyword.Text + "%'";
224                     HeaderText = new string[] { "项目编码", "项目名称", "积分" };
225                     DbColumn = new string[] { "jl_code", "jl_item", "score" };
226                     break;
227             }
228         }
229 
230         private void BindingCustomer()
231         {
232             ClearDataGridView();
233             CreateCheckBoxColumn(HeaderText, DbColumn);
234 
235             CustomerDB customer = new CustomerDB();
236             dtOriginal = (rbUnSend.Checked) ? customer.UnSendMasterDT("Customers") : customer.SendedMasterDT("Customers");
237             InitDataBind(dtOriginal, HeaderText, DbColumn);
238             GridCount(dtOriginal);
239         }
240 
241         private void BindingRepair()
242         {
243             ClearDataGridView();
244             CreateCheckBoxColumn(HeaderText, DbColumn);
245 
246             RepairDB repair = new RepairDB();
247             dtOriginal = (rbUnSend.Checked) ? repair.UnSendMasterDT("RepairMain") : repair.SendedMasterDT("RepairMain");
248             InitDataBind(dtOriginal, HeaderText, DbColumn);
249             GridCount(dtOriginal);
250         }
251 
252         private void BindingVIPCard()
253         {
254             ClearDataGridView();
255             CreateCheckBoxColumn(HeaderText, DbColumn);
256 
257             VIPCardDB vip = new VIPCardDB();
258             dtOriginal = (rbUnSend.Checked) ? vip.UnSendMasterDT("VIPCard_Main") : vip.SendedMasterDT("VIPCard_Main");
259             InitDataBind(dtOriginal, HeaderText, DbColumn);
260             GridCount(dtOriginal);
261         }
262 
263         private void BindingSaleList()
264         {
265             ClearDataGridView();
266             CreateCheckBoxColumn(HeaderText, DbColumn);
267 
268             SaleListDB sale = new SaleListDB();
269             dtOriginal = (rbUnSend.Checked) ? sale.UnSendMasterDT("SaleListMain") : sale.SendedMasterDT("SaleListMain");
270             InitDataBind(dtOriginal, HeaderText, DbColumn);
271             GridCount(dtOriginal);
272         }
273 
274         private void BindingCreditConvert()
275         {
276             ClearDataGridView();
277             CreateCheckBoxColumn(HeaderText, DbColumn);
278 
279             CreditConvertDB creadit = new CreditConvertDB();
280             dtOriginal = (rbUnSend.Checked) ? creadit.UnSendConvertItemDT("CreditConvert") : creadit.UnSendConvertItemDT("CreditConvert");
281             InitDataBind(dtOriginal, HeaderText, DbColumn);
282             GridCount(dtOriginal);
283         }
284 
285         private void ClearDataGridView()
286         {
287             DataTable dt = null;
288             dgvMasterPreview.Columns.Clear();
289             dgvMasterPreview.Rows.Clear();
290             dgvMasterPreview.DataSource = dt;
291         }
292 
293         private void CreateCheckBoxColumn(string[] headerText, string[] dbColumn)
294         {
295             DataGridViewCheckBoxColumn colCheckBox = new DataGridViewCheckBoxColumn();
296             colCheckBox.HeaderText = "勾选";
297 
298             dgvMasterPreview.Columns.Add(colCheckBox);
299 
300             for (int i = 0; i < headerText.Length; i++)
301             {
302                 DataGridViewTextBoxColumn colText = new DataGridViewTextBoxColumn();
303                 colText.HeaderText = headerText[i].ToString();
304                 colText.DataPropertyName = dbColumn[i].ToString();
305                 dgvMasterPreview.Columns.Add(colText);
306             }
307         }
308 
309         private void InitDataBind(DataTable dt, string[] headerText, string[] colText)
310         {
311             if (dt != null)
312             {
313                 for (int j = 0; j < dt.Rows.Count; j++)
314                 {
315                     dgvMasterPreview.Rows.Add();
316 
317                     for (int k = 0; k < headerText.Length; k++)
318                     {
319                         dgvMasterPreview.Rows[j].Cells[k + 1].Value = dt.Rows[j][colText[k]];
320                     }
321                 }
322             }
323         }
324 
325         private void WholeBind()
326         {
327             switch (cbxDataType.SelectedItem.ToString())
328             {
329                 case "客户资料":
330                     BindingCustomer();
331                     break;
332 
333                 case "会员卡资料":
334                     BindingVIPCard();
335                     break;
336 
337                 case "销售单":
338                     BindingSaleList();
339                     break;
340 
341                 case "维修历史":
342                     BindingRepair();
343                     break;
344 
345                 case "积分兑换项目":
346                     BindingCreditConvert();
347                     break;
348             }
349         }
350 
351         private void GridCount(DataTable dt)
352         {
353             int dtCount = (dt == null) ? 0 : dt.Rows.Count;
354 
355             string status = (rbUnSend.Checked) ? rbUnSend.Text : rbSended.Text;
356 
357             tsslbStatus.Text = status + cbxDataType.SelectedItem.ToString() + " " + dtCount.ToString() + "";
358         }
359 
360         private DataTable Filter(DataTable dtFrom, string filter)
361         {
362             if (dtFrom != null)
363             {
364                 DataTable dtTo;
365 
366                 DataRow[] rows = dtFrom.Select(filter);
367                 dtTo = dtFrom.Clone();
368 
369                 foreach (DataRow row in rows)
370                 {
371                     dtTo.ImportRow(row);
372                 }
373 
374                 return dtTo;
375             }
376             else
377                 return null;
378         }
379 
380         private void tbKeyword_TextChanged(object sender, EventArgs e)
381         {
382             Prepare();
383             ClearDataGridView();
384             CreateCheckBoxColumn(HeaderText, DbColumn);
385 
386             DataTable dtFilter = Filter(dtOriginal, filterString);
387             InitDataBind(dtFilter, HeaderText, DbColumn);
388             GridCount(dtFilter);
389         }
390 
391         private string GetCheckedValue(DataGridView dgv, int columnIndex)
392         {
393             string items = "";
394 
395             for (int i = 0; i < dgv.Rows.Count; i++)
396             {
397                 string CheckedValues = dgv.Rows[i].Cells[0].EditedFormattedValue.ToString();
398 
399                 if (CheckedValues == "True")
400                 {
401                     items += dgv.Rows[i].Cells[columnIndex].Value.ToString() + ",";
402                 }
403                 else
404                     items += "";
405             }
406 
407             return items;
408         }
409 
410         private string GetWholeValue(DataGridView dgv, int columnIndex)
411         {
412             string items = "";
413 
414             if (dgv.Rows.Count > 0)
415             {
416                 for (int i = 0; i < dgv.Rows.Count; i++)
417                 {
418                     items += dgv.Rows[i].Cells[columnIndex].Value + ",";
419                 }
420             }
421             else
422                 items += "";
423 
424             return items;
425         }
426 
427         private string MasterJson(DataTable dtm)
428         {
429             string tempMaster;
430 
431             if (dtm == null)
432             {
433                 tempMaster = "";
434             }
435             else
436             {
437                 tempMaster = Converter.DataTableToJson(dtm);
438                 tempMaster = Regex.Replace(tempMaster, @"\\/Date\((\d+)\)\\/", match =>
439                 {
440                     DateTime dt = new DateTime(1970, 1, 1);
441                     dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
442                     dt = dt.ToLocalTime();
443                     return dt.ToString("yyyy-MM-dd HH:mm:ss");
444                 });
445             }
446 
447             return tempMaster;
448         }
449 
450         private string DetailJson(DataTable dtd)
451         {
452             string tempDetail;
453 
454             if (dtd == null)
455             {
456                 tempDetail = "";
457             }
458             else
459             {
460                 tempDetail = Converter.DataTableToJson(dtd);
461                 tempDetail = Regex.Replace(tempDetail, @"\\/Date\((\d+)\)\\/", match =>
462                 {
463                     DateTime dt = new DateTime(1970, 1, 1);
464                     dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
465                     dt = dt.ToLocalTime();
466                     return dt.ToString("yyyy-MM-dd HH:mm:ss");
467                 });
468             }
469 
470             return tempDetail;
471         }
472 
473         private void SendOut(JsonBodies json)
474         {
475             CallWebService cws = new CallWebService();
476 
477             switch (cbxDataType.SelectedItem.ToString())
478             {
479                 case "客户资料":
480                     string[] arg_xskh = new string[3] { json.Main, garages.ID, garages.Title };
481                     cws.Add_fb_xskh(arg_xskh);
482                     CustomerDB customer = new CustomerDB();
483                     int customerSendCount = customer.UpdateStatus(finalItems);
484                     MessageBox.Show("客户资料 " + customerSendCount.ToString() + " 笔上传完成");
485                     break;
486 
487                 case "销售单":
488                     string[] arg_xsdmain = new string[2] { json.Main, garages.ID };
489                     string[] arg_xsdmx = new string[2] { json.SingleDetail, garages.ID };
490 
491                     SaleListDB sale = new SaleListDB();
492                     cws.Add_qp_xsmain(arg_xsdmain);
493                     int SaleListMainSendCount = sale.UpdateStatus(finalItems);
494                     cws.Add_qp_xsmx(arg_xsdmx);
495                     MessageBox.Show("销售单 " + SaleListMainSendCount.ToString() + " 笔上传完成");
496                     break;
497 
498                 case "会员卡资料":
499                     string[] arg_vip_main = new string[2] { json.Main, garages.ID };
500                     string[] arg_vip_serviceitem = new string[2] { json.FirstDetail, garages.ID };
501                     string[] arg_vip_history = new string[2] { json.SecondDetail, garages.ID };
502                     string[] arg_vip_recharge = new string[2] { json.ThirdDetail, garages.ID };
503 
504                     VIPCardDB vip = new VIPCardDB();
505 ;
506                     cws.Add_VIPCard_Main(arg_vip_main);
507                     int sendVIPMainCount = vip.UpdateStatusMain(finalItems);
508                     cws.Add_VIPCard_Detail(arg_vip_serviceitem);
509                     int sendVIPCardDetailCount = vip.UpdateStatusServiceItemCriteria(finalItems);
510                     cws.Add_VIPCard_History(arg_vip_history);
511                     int sendVIPCardHistory = vip.UpdateStatusHistoryCriteria(finalItems);
512                     cws.Add_VIPCard_Recharge(arg_vip_recharge);
513                     int sendVIPCardRecharge = vip.UpdateStatusRechargeCriteria(finalItems);
514                     MessageBox.Show("会员卡资料 " + sendVIPMainCount.ToString() + " 笔上传完成");
515                     break;
516 
517                 case "维修历史":
518                     string[] arg_repair_main = new string[2] { json.Main, garages.ID };
519                     string[] arg_repairitem = new string[2] { json.FirstDetail, garages.ID };
520                     string[] arg_repairmaterial = new string[2] { json.SecondDetail, garages.ID };
521                     string[] arg_repairotherfee = new string[2] { json.ThirdDetail, garages.ID };
522 
523                     cws.Add_qx_jsd_main(arg_repair_main);
524                     cws.Add_qx_jsdmx_xlxm(arg_repairitem);
525                     cws.Add_qx_jsdmx_pjclmx(arg_repairmaterial);
526                     cws.Add_qx_jsdmx_qtfy(arg_repairotherfee);
527 
528                     RepairDB repair = new RepairDB();
529                     int sendRepairMain = repair.UpdateStatusMain(finalItems);
530                     MessageBox.Show("维修历史 " + sendRepairMain.ToString() + " 笔上传完成");
531                     break;
532 
533                 case "积分兑换项目":
534                     string[] arg_creditconvert = new string[2] { json.Main, garages.ID };
535                     cws.Add_Sys_VipCard_jl_item(arg_creditconvert);
536                     CreditConvertDB credit = new CreditConvertDB();
537                     int sendConvertItem = credit.UpdateStatusConvertItemCriteria(finalItems);
538                     MessageBox.Show("积分兑换项目 " + sendConvertItem.ToString() + " 笔上传完成");
539                     break;
540 
541             }
542         }
543         private void JsonSendOut()
544         {
545             switch (cbxDataType.SelectedItem.ToString())
546             {
547                 case "客户资料":
548                     CustomerDB customer = new CustomerDB();
549 
550                     if (SendMode == "All" || finalItems.Length > 0)
551                     {
552                         Json.Main = MasterJson(customer.UnSendMasterCriteriaDT("Customers", finalItems));
553                         SendOut(Json);
554                     }
555                     else
556                         MessageBox.Show("请选取要上传的客户资料");
557                     break;
558 
559                 case "销售单":
560                     SaleListDB sale = new SaleListDB();
561 
562                     if (SendMode == "All" || finalItems.Length > 0)
563                     {
564                         Json.Main = MasterJson(sale.UnSendMasterCriteriaDT("SaleListMain", finalItems));
565                         Json.SingleDetail = DetailJson(sale.UnSendDetailCriteriaDT("SaleListDetail", finalItems));
566                         SendOut(Json);
567                     }
568                     else
569                         MessageBox.Show("请选取要上传的销售单");
570                     break;
571 
572                 case "会员卡资料":
573                     VIPCardDB vip = new VIPCardDB();
574 
575                     if (SendMode == "All" || finalItems.Length > 0)
576                     {
577                         Json.Main = MasterJson(vip.UnSendMasterCriteriaDT("VIPCardMain", finalItems));
578                         Json.FirstDetail = DetailJson(vip.UnSendServiceItemCriteriaDT("VIPCardServiceItem", finalItems));
579                         Json.SecondDetail = DetailJson(vip.UnSendHistoryCriteriaDT("VIPCardHistory", finalItems));
580                         Json.ThirdDetail = DetailJson(vip.UnSendRechargeCriteriaDT("VIPCardRecharge", finalItems));
581                         SendOut(Json);
582                     }
583                     else
584                         MessageBox.Show("请选取要上传的会员卡资料");
585                     break;
586 
587                 case "维修历史":
588                     RepairDB repair = new RepairDB();
589 
590                     if (SendMode == "All" || finalItems.Length > 0)
591                     {
592                         Json.Main = MasterJson(repair.UnSendMasterCriteriaDT("RepairMain", finalItems));
593                         Json.FirstDetail = DetailJson(repair.UnSendRepairItemCriteriaDT("RepairItem", finalItems));
594                         Json.SecondDetail = DetailJson(repair.UnSendMaterialCriteriaDT("RepairMaterial", finalItems));
595                         Json.ThirdDetail = DetailJson(repair.UnSendOtherFeeCriteriaDT("RepairOtherFee", finalItems));
596                         SendOut(Json);
597                     }
598                     else
599                         MessageBox.Show("请选取要上传的维修历史");
600                     break;
601 
602                 case "积分兑换项目":
603                     CreditConvertDB credit = new CreditConvertDB();
604 
605                     if (SendMode == "All" || finalItems.Length > 0)
606                     {
607                         Json.Main = MasterJson(credit.UnSendConvertItemCriteriaDT("CreditConvertItem", finalItems));
608                         SendOut(Json);
609                     }
610                     else
611                         MessageBox.Show("请选取要上传的积分兑换项目");
612                     break;
613             }
614         }
615 
616         private void ResetStatus()
617         {
618             switch (cbxDataType.SelectedItem.ToString())
619             {
620                 case "客户资料":
621                     CustomerDB customer = new CustomerDB();
622 
623                     if (ResetMode == "All" || finalItems.Length > 0)
624                     {
625                         int resetCustomerCount = customer.ResetStatus(finalItems);
626                         MessageBox.Show("客户档案已还原 " + resetCustomerCount.ToString() + "");
627                     }
628                     else
629                         tsslbStatus.Text = "";
630                     break;
631 
632                 case "销售单":
633                     SaleListDB sale = new SaleListDB();
634 
635                     if (ResetMode == "All" || finalItems.Length > 0)
636                     {
637                         int resetSaleCount = sale.ResetStatus(finalItems);
638                         MessageBox.Show("销售单已还原 " + resetSaleCount.ToString() + "");
639                     }
640                     else
641                         tsslbStatus.Text = "";
642 
643                     break;
644 
645                 case "会员卡资料":
646                     VIPCardDB vip = new VIPCardDB();
647 
648                     if (ResetMode == "All" || finalItems.Length > 0)
649                     {
650                         int resetVIPMainCount = vip.ResetStatusMain(finalItems);
651                         int resetVIPServiceItemCount = vip.ResetStatusServiceItemCriteria(finalItems);
652                         int resetVIPHistoryCount = vip.ResetStatusHistoryCriteria(finalItems);
653                         int resetVIPRechargeCount = vip.ResetStatusRechargeCriteria(finalItems);
654                         MessageBox.Show("会员资料已还原 " + resetVIPMainCount.ToString() + "");
655                     }
656                     else
657                         tsslbStatus.Text = "";
658 
659                     break;
660 
661                 case "维修历史":
662                     RepairDB repair = new RepairDB();
663 
664                     if (ResetMode == "All" || finalItems.Length > 0)
665                     {
666                         int resetRepairMainCount = repair.ResetStatusMain(finalItems);
667                         MessageBox.Show("维修历史已还原 " + resetRepairMainCount.ToString() + "");
668                     }
669                     else
670                         tsslbStatus.Text = "";
671 
672                     break;
673 
674                 case "积分兑换项目":
675                     CreditConvertDB credit = new CreditConvertDB();
676 
677                     if (ResetMode == "All" || finalItems.Length > 0)
678                     {
679                         int resetCreditConvertCount = credit.ResetStatusConvertItemCriteria(finalItems);
680                         MessageBox.Show("维修历史已还原 " + resetCreditConvertCount.ToString() + "");
681                     }
682                     else
683                         tsslbStatus.Text = "";
684 
685                     break;
686             }
687         }
688     }
689 }

 

posted on 2015-11-04 14:39  吉格艾諾  阅读(564)  评论(0编辑  收藏  举报