private void NingboOrdersForm_Load(object sender, EventArgs e) { // 对于1个ningboorder中包含多个product, 以多行显示, 这几行以相同颜色做背景. // 为了避免相邻订单都是多product, 设置2种背景色, 交替使用. bool backColorTag = false; foreach (NingboOrder no in NingboOrder.Orders) { Color backColor = lvwNingboOrders.BackColor; if (no.SoldProducts.Count > 1) { backColor = backColorTag ? Color.PowderBlue : Color.AntiqueWhite; backColorTag = !backColorTag; } for (int i = 0; i < no.SoldProducts.Count; i++) { NingboOrderListViewItem item = new NingboOrderListViewItem(no, i, backColor); lvwNingboOrders.Items.Add(item); } } }
private void btnSearchTaobaoOrder_Click(object sender, EventArgs e) { if (lvwNingboOrders.SelectedItems.Count <= 0) { return; } System.Diagnostics.Trace.Assert(null != this.OnSearch); Cursor = Cursors.WaitCursor; // Check if all selected row have same taobao order Id. for (int i = 0; i < lvwNingboOrders.SelectedItems.Count; i++) { for (int j = 0; j < i; j++) { NingboOrderListViewItem itemi = lvwNingboOrders.SelectedItems[i] as NingboOrderListViewItem; NingboOrderListViewItem itemj = lvwNingboOrders.SelectedItems[j] as NingboOrderListViewItem; if (!itemi.NingboOrder.TaobaoOrderId.Equals(itemj.NingboOrder.TaobaoOrderId)) { MessageBox.Show(this, "选中了不同的淘宝订单, 无法按订单编号搜索.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } } NingboOrderListViewItem selectedItem = ((NingboOrderListViewItem)lvwNingboOrders.SelectedItems[0]); if (chkSearchByMobile.Checked) { this.OnSearchMobile(selectedItem.NingboOrder.Mobile); } else { this.OnSearch(selectedItem.NingboOrder.TaobaoOrderId); } Cursor = Cursors.Default; }
private void btnLoad_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel Files(*.xls)|*.xls|All Files(*.*)|*.*"; if (DialogResult.OK == ofd.ShowDialog(this)) { Excel excel = new Excel(ofd.FileName, true, Excel.OledbVersions.OLEDB40); try { List <string> tableNames = excel.GetTableNames(); if (null == tableNames || tableNames.Count <= 0) { MessageBox.Show(this, "Excel文件中未找到任何表.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Ningbo.NingboTableColumnSelectorForm colSelectorForm = new Egode.Ningbo.NingboTableColumnSelectorForm(excel); if (DialogResult.OK == colSelectorForm.ShowDialog(this)) { DataSet ds = excel.Get(tableNames[0], string.Empty); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow row = ds.Tables[0].Rows[i]; if (string.IsNullOrEmpty(row[colSelectorForm.ColumnInfo.LogisticsCompany].ToString()) && string.IsNullOrEmpty(row[colSelectorForm.ColumnInfo.MailNumber].ToString())) { continue; } int count = int.Parse(row.ItemArray[colSelectorForm.ColumnInfo.Count].ToString()); List <SoldProductInfo> products = new List <SoldProductInfo>(); ProductInfo pi = null; SoldProductInfo spi = null; if (colSelectorForm.ColumnInfo.ProductNingboCode >= 0) { pi = ProductInfo.GetProductByNingboCode(row.ItemArray[colSelectorForm.ColumnInfo.ProductNingboCode].ToString()); if (null != pi) { spi = new SoldProductInfo(pi); spi.Count = count; products.Add(spi); } } //NingboOrder no = new NingboOrder( // row.ItemArray[2].ToString().Trim(), row.ItemArray[3].ToString().Trim(), // row.ItemArray[4].ToString().Trim(), row.ItemArray[15].ToString().Trim(), // row.ItemArray[16].ToString().Trim(), row.ItemArray[18].ToString().Trim(), row.ItemArray[19].ToString().Trim(), // row.ItemArray[20].ToString().Trim(), row.ItemArray[21].ToString().Trim(), // products, row.ItemArray[35].ToString().Trim()); NingboOrder no = new NingboOrder( row.ItemArray[colSelectorForm.ColumnInfo.LogisticsCompany].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.MailNumber].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.OrderId].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.RecipientName].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.Mobile].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.Province].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.City].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.District].ToString().Trim(), row.ItemArray[colSelectorForm.ColumnInfo.StreetAddr].ToString().Trim(), products, string.Empty, string.Empty); // last arg is alipay number. NingboOrderListViewItem item = new NingboOrderListViewItem(no, 0, lvwNingboOrders.BackColor); lvwNingboOrders.Items.Add(item); if (null == spi) { if (colSelectorForm.ColumnInfo.ProductNingboCode >= 0) { item.SubItems[9].Text = row.ItemArray[colSelectorForm.ColumnInfo.ProductNingboCode].ToString(); } if (colSelectorForm.ColumnInfo.Count >= 0) { item.SubItems[10].Text = row.ItemArray[colSelectorForm.ColumnInfo.Count].ToString(); } } } } /* Removed by KK on 2016/07/15. * // Get column index for shipment number return from higo. * int logisticsCompanyColIndex = -1; * int shipmentNumberColIndex = -1; * int taobaoOrderIdColIndex = -1; * int recipientNameColIndex = -1; * int mobileColIndex = -1; * int provinceColIndex = -1; * int cityColIndex = -1; * int districtColIndex = -1; * int streetAddrColIndex = -1; * int productNingboCodeColIndex = -1; * int productCountColIndex = -1; * for (int i = 0; i < ds.Tables[0].Columns.Count; i++) * { * System.Diagnostics.Trace.WriteLine(string.Format("column {0}: {1}", i, ds.Tables[0].Rows[0].ItemArray[i])); * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("快递公司")) * logisticsCompanyColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("运单号")) * shipmentNumberColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("网站订单编号")) * taobaoOrderIdColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("收货人")) * recipientNameColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("手机")) * mobileColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("省份")) * provinceColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("市")) * cityColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("区")) * districtColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("详细信息")) * streetAddrColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Contains("商品编码")) * productNingboCodeColIndex = i; * if (ds.Tables[0].Rows[0].ItemArray[i].ToString().Trim().Equals("数量")) * productCountColIndex = i; * } * * int idInfoColIndex = -1; * if (ds.Tables[0].Rows.Count >= 2) * { * Regex r = new Regex(@"\d{17}[\d|x|X]"); * for (int i = 0; i < ds.Tables[0].Columns.Count; i++) * { * if (r.Match(ds.Tables[0].Rows[1].ItemArray[i].ToString()).Success) * { * idInfoColIndex = i; * break; * } * } * } * * if (-1 == shipmentNumberColIndex) * { * //MessageBox.Show(this, "没有找到\"运单号\"列, 请检查文件数据或联系KK~", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); * MessageBox.Show(this, "没有找到\"运单号\"列, 默认使用第4列(D列)作为运单号, 请自行确认数据无误!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); * shipmentNumberColIndex = 3; * //return; * } * if (-1 == taobaoOrderIdColIndex) * { * MessageBox.Show(this, "没有找到\"网站订单编号\"列, 默认使用第5列(E列)作为订单编号, 请自行确认数据无误!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); * taobaoOrderIdColIndex = 4; * //return; * } * * for (int i = 0; i < ds.Tables[0].Rows.Count; i++) * { * DataRow row = ds.Tables[0].Rows[i]; * * ProductInfo pi = ProductInfo.GetProductByNingboCode(row.ItemArray[productNingboCodeColIndex].ToString()); * int count = int.Parse(row.ItemArray[productCountColIndex].ToString()); * SoldProductInfo spi = new SoldProductInfo(pi); * spi.Count = count; * List<SoldProductInfo> products = new List<SoldProductInfo>(); * products.Add(spi); * * //NingboOrder no = new NingboOrder( * // row.ItemArray[2].ToString().Trim(), row.ItemArray[3].ToString().Trim(), * // row.ItemArray[4].ToString().Trim(), row.ItemArray[15].ToString().Trim(), * // row.ItemArray[16].ToString().Trim(), row.ItemArray[18].ToString().Trim(), row.ItemArray[19].ToString().Trim(), * // row.ItemArray[20].ToString().Trim(), row.ItemArray[21].ToString().Trim(), * // products, row.ItemArray[35].ToString().Trim()); * NingboOrder no = new NingboOrder( * row.ItemArray[logisticsCompanyColIndex].ToString().Trim(), row.ItemArray[shipmentNumberColIndex].ToString().Trim(), * row.ItemArray[taobaoOrderIdColIndex].ToString().Trim(), row.ItemArray[recipientNameColIndex].ToString().Trim(), * row.ItemArray[mobileColIndex].ToString().Trim(), row.ItemArray[provinceColIndex].ToString().Trim(), row.ItemArray[19].ToString().Trim(), * row.ItemArray[cityColIndex].ToString().Trim(), row.ItemArray[districtColIndex].ToString().Trim(), * products, row.ItemArray[idInfoColIndex].ToString().Trim(), string.Empty); // last arg is alipay number. * NingboOrderListViewItem item = new NingboOrderListViewItem(no, 0, lvwNingboOrders.BackColor); * lvwNingboOrders.Items.Add(item); * } */ } catch (Exception ex) { MessageBox.Show(this, ex.Message, this.Text, MessageBoxButtons.OK); } finally { excel.Close(); } } } catch (Exception ex) { MessageBox.Show(this, ex.Message, this.Text, MessageBoxButtons.OK); } finally { Cursor.Current = Cursors.Default; } }