Esempio n. 1
0
        private void btnProduce_Click(object sender, EventArgs e)
        {
            if (CheckSure())
            {
                List <DataTable> orderList = new List <DataTable>();
                List <Hashtable> hashTable = new List <Hashtable>();
                DataTable        dt        = new DataTable();
                string[]         a         = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N" };
                dt.Columns.Add("NO");
                dt.Columns.Add("SLIPTYPE");
                dt.Columns.Add("X_1");
                dt.Columns.Add("X_2");
                dt.Columns.Add("SLIPNUMBER");
                dt.Columns.Add("CUSTOMER");
                dt.Columns.Add("DATE");
                dt.Columns.Add("MEMO");
                //dt.Columns.Add("QUANTITY");
                int i = 1;

                foreach (DataGridViewRow dgvr in dgvData.Rows)
                {
                    if (Convert.ToBoolean(dgvr.Cells["CHECK"].Value))
                    {
                        orderTable = bOrderHeader.GetModel(CConvert.ToString(dgvr.Cells["SLIP_NUMBER"].Value));

                        if (orderTable != null)
                        {
                            DataRow row = dt.NewRow();
                            row["NO"]         = i;
                            row["SLIPTYPE"]   = bCommon.GetBaseMaster("SLIP_TYPE", orderTable.SLIP_TYPE).Name;
                            row["SLIPNUMBER"] = orderTable.SLIP_NUMBER;
                            row["CUSTOMER"]   = orderTable.ENDER_CUSTOMER_NAME;
                            row["DATE"]       = orderTable.DUE_DATE;
                            row["MEMO"]       = orderTable.MEMO;
                            //row["QUANTITY"]= orderTable.
                            dt.Rows.Add(row);

                            DataTable dt2 = new DataTable();
                            dt2.Columns.Add("NO");
                            dt2.Columns.Add("PRODUCT_NAME");
                            dt2.Columns.Add("X_1");
                            dt2.Columns.Add("X_2");
                            dt2.Columns.Add("QUANTITY");
                            dt2.Columns.Add("X_3");
                            dt2.Columns.Add("X_4");
                            dt2.Columns.Add("X_5");
                            dt2.Columns.Add("X_6");
                            dt2.Columns.Add("X_7");
                            dt2.Columns.Add("X_8");
                            dt2.Columns.Add("MEMO");

                            int j = 1;
                            foreach (BllOrderLineTable line in orderTable.Items)
                            {
                                DataRow dr = dt2.NewRow();
                                dr["NO"]           = j++;
                                dr["PRODUCT_NAME"] = line.PRODUCT_NAME;
                                dr["QUANTITY"]     = (int)line.QUANTITY / orderTable.QUANTITY;
                                dr["MEMO"]         = line.MEMO;
                                dt2.Rows.Add(dr);
                            }
                            orderList.Add(dt2);

                            Hashtable ht = new Hashtable();
                            ht.Add("&SLIP_TYPE", bCommon.GetBaseMaster("SLIP_TYPE", orderTable.SLIP_TYPE).Name);
                            ht.Add("&QUANTITY", ((int)orderTable.QUANTITY).ToString() + "套");
                            //ht.Add("&YEAR", CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("yyyy"));
                            //ht.Add("&MONTH", CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("MM"));
                            ht.Add("&NAME", "生产通知单" + a[i - 1]);
                            ht.Add("&PONUMBER", orderTable.CUSTOMER_PO_NUMBER);
                            ht.Add("&DUEDATE", CConvert.ToDateTime(orderTable.DUE_DATE).ToString("yyyy") + "月" + CConvert.ToDateTime(orderTable.DUE_DATE).ToString("MM") + "日");
                            ht.Add("&SLIPNUMBER", orderTable.SLIP_NUMBER);
                            ht.Add("&CUSTOMER", orderTable.ENDER_CUSTOMER_NAME);
                            hashTable.Add(ht);
                            i++;
                        }
                    }
                }

                if (dt.Rows.Count > 0)
                {
                    SaveFileDialog sf = new SaveFileDialog();
                    sf.FileName = "HD_PRODUCTION_ORDERS_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
                    sf.Filter   = "(文件)|*.xls;*.xlsx";
                    if (sf.ShowDialog(this) == DialogResult.OK)
                    {
                        if (dt.Rows.Count > 0)
                        {
                            int ret = CExport.DataTableToExcel_Production_Orders(@"rpt\HD_PRODUCTION_ORDERS.xls", sf.FileName, dt, orderList, hashTable);
                            if (CConstant.EXPORT_FAILURE.Equals(ret))
                            {
                                MessageBox.Show("导出失败。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else if (CConstant.EXPORT_SUCCESS.Equals(ret))
                            {
                                MessageBox.Show("导出成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else if (CConstant.EXPORT_RUNNING.Equals(ret))
                            {
                                MessageBox.Show("文件正在运行,重新生成文件失败。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else if (CConstant.EXPORT_TEMPLETE_FILE_NOT_EXIST.Equals(ret))
                            {
                                MessageBox.Show("模版文件不存在。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                        else
                        {
                            MessageBox.Show("明细信息不存在。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("请先选择一张订单。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }