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