Эх сурвалжийг харах

泽天客户自定到出功能提交

callm 5 жил өмнө
parent
commit
b691eff994

+ 1 - 1
UAS-出货标签管理(泽天)/CustomControl/Pagination.cs

@@ -253,7 +253,7 @@ namespace UAS_LabelMachine.CustomControl
                 string FolderPath = folderBrowserDialog1.SelectedPath;
                 ExcelHandler eh = new ExcelHandler();
                 //导出Excel的时候返回一个文件名,用户选择是否打开
-                string filePath = eh.ExportExcel(BaseUtil.GetExportDataTable(Dgv), FolderPath, "客户标签");
+                string filePath = eh.ExportExcel(BaseUtil.GetExportDataTable(Dgv),null, FolderPath, "客户标签");
                 //用户选择导出之后是否立即打开
                 MessageBoxButtons messButton = MessageBoxButtons.YesNo;
                 string openFile = MessageBox.Show(this.ParentForm, "是否打开文件", "提示", messButton).ToString();

+ 44 - 22
UAS-出货标签管理(泽天)/PublicMethod/ExcelHandler.cs

@@ -14,11 +14,11 @@ namespace UAS_LabelMachine
         /// <summary>
         /// 导出Excel,返回文件在客户端的路径
         /// </summary>
-        public string ExportExcel(DataTable dt, string FolderPath, string FileName)
+        public string ExportExcel(DataTable dt, DataTable Captioon, string FolderPath, string FileName)
         {
             //创建一个内存流,用来接收转换成Excel的内容
             MemoryStream ms;
-            ms = DataTableToExcel(dt);
+            ms = DataTableToExcel(dt, Captioon);
             //以系统当前时间命名文件,FileMode.Create表示创建文件,FileAccess.Write表示拥有写的权限
             string filePath = @FolderPath + "\\" + FileName + ".xls";
             FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
@@ -50,7 +50,7 @@ namespace UAS_LabelMachine
         /// </summary>
         /// <param name="DataTable"></param>
         /// <returns></returns>
-        public MemoryStream DataTableToExcel(DataTable DataTable)
+        public MemoryStream DataTableToExcel(DataTable DataTable, DataTable Captioon)
         {
             //创建内存流
             MemoryStream ms = new MemoryStream();
@@ -78,10 +78,6 @@ namespace UAS_LabelMachine
                 }
                 sheet.SetColumnWidth(i, dataLength);
             }
-            //首先画好第一行带颜色的,单独写出来,避免写在循环里面
-            IRow row = sheet.CreateRow(0);
-            //冻结第一行
-            sheet.CreateFreezePane(0, 1, 0, 1);
             ICellStyle style = book.CreateCellStyle();
             style.FillForegroundColor = HSSFColor.PALE_BLUE.index;
             style.FillPattern = FillPatternType.BIG_SPOTS;
@@ -91,31 +87,57 @@ namespace UAS_LabelMachine
             style.BorderLeft = BorderStyle.THICK;
             style.BorderRight = BorderStyle.THICK;
             style.BorderTop = BorderStyle.THICK;
-            row.HeightInPoints = 20;
-            //固定第一行
-            //row.RowStyle.IsLocked=true;
-            //给第一行的标签赋值样式和值
-            for (int j = 0; j < columnNum; j++)
+            //首先画好第一行带颜色的,单独写出来,避免写在循环里面
+            int rowindex = 0;
+            if (Captioon.Rows[0]["es_engenable"].ToString() == "-1")
             {
-                row.CreateCell(j);
-                row.Cells[j].CellStyle = style;
-                row.Cells[j].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
-                row.Cells[j].CellStyle.Alignment = HorizontalAlignment.CENTER;
-                row.Cells[j].SetCellValue(DataTable.Columns[j].ColumnName);
+                IRow row0 = sheet.CreateRow(rowindex);
+                for (int i = 0; i < Captioon.Rows.Count; i++)
+                {
+                    row0.CreateCell(i).SetCellValue(Captioon.Rows[i]["esd_engcaption"].ToString());
+                    row0.Cells[i].CellStyle = style;
+                    row0.Cells[i].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
+                    row0.Cells[i].CellStyle.Alignment = HorizontalAlignment.CENTER;
+                }
+                rowindex = rowindex + 1;
+            }
+            if (Captioon.Rows[0]["es_chineseenable"].ToString() == "-1")
+            {
+                IRow row1 = sheet.CreateRow(rowindex);
+                for (int i = 0; i < Captioon.Rows.Count; i++)
+                {
+                    row1.CreateCell(i).SetCellValue(Captioon.Rows[i]["esd_caption"].ToString());
+
+                    row1.Cells[i].CellStyle = style;
+                    row1.Cells[i].CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
+                    row1.Cells[i].CellStyle.Alignment = HorizontalAlignment.CENTER;
+                }
+                rowindex = rowindex + 1;
             }
+            //冻结第一行
+            sheet.CreateFreezePane(0, rowindex, 0, rowindex);
+
+            IRow row = sheet.CreateRow(rowindex);
+
+            row.HeightInPoints = 20;
+
             //将DataTable的值循环赋值给book,Aligment设置居中
             //之前已经画了带颜色的第一行,所以从i=1开始画
             for (int i = 0; i < rowNum; i++)
             {
-                IRow row1 = sheet.CreateRow(i + 1);
-                row1.HeightInPoints = 20;
+                row = sheet.CreateRow(i + rowindex);
+                row.HeightInPoints = 20;
                 for (int j = 0; j < columnNum; j++)
                 {
-                    row1.CreateCell(j);
-                    row1.Cells[j].SetCellValue(DataTable.Rows[i][j].ToString());
-                    row1.GetCell(j).CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
+                    row.CreateCell(j);
+                    row.Cells[j].SetCellValue(DataTable.Rows[i][j].ToString());
+                    row.GetCell(j).CellStyle.VerticalAlignment = VerticalAlignment.CENTER;
                 }
             }
+            for (int i = 0; i < DataTable.Columns.Count; i++)
+            {
+                sheet.AutoSizeColumn(i);
+            }
             //将book的内容写入内存流中返回
             book.Write(ms);
             return ms;

+ 13 - 34
UAS-出货标签管理(泽天)/UAS_出货标签管理.cs

@@ -1372,42 +1372,21 @@ namespace UAS_LabelMachine
             if (result == DialogResult.OK)
             {
                 ExcelHandler eh = new ExcelHandler();
-                DataTable dt = LabelInfDataTable.Copy();
-                for (int i = dt.Columns.Count - 1; i >= 0; i--)
+                DataTable Field = (DataTable)dh.ExecuteSql("select * from CS_EXPORTSETTINGdetail left join CS_EXPORTSETTING on es_id=esd_esid where es_custcode='" + pi_cardcode.Text + "' and esd_enable=-1 and esd_filed is not null order by esd_detno", "select");
+                if (Field.Rows.Count == 0)
                 {
-                    for (int j = 0; j < LabelInf.Columns.Count; j++)
-                    {
-                        //去除ID列
-                        if (dt.Columns[i].ColumnName.ToLower().Contains("id") || dt.Columns[i].ColumnName.ToLower() == "pib_barcode" || dt.Columns[i].ColumnName.ToLower() == "pib_pdno" || dt.Columns[i].ColumnName.ToLower() == "pib_ifprint" || dt.Columns[i].ColumnName.ToLower() == "pib_datecode1" || dt.Columns[i].ColumnName.ToLower() == "pr_vendprodcode")
-                        {
-                            dt.Columns.RemoveAt(i);
-                            break;
-                        }
-                        switch (dt.Columns[i].ColumnName.ToLower())
-                        {
-                            case "pib_lotno":
-                                dt.Columns[i].ColumnName = "批次号";
-                                break;
-                            case "pib_datecode":
-                                dt.Columns[i].ColumnName = "生产年周";
-                                break;
-                            case "pib_custbarcode":
-                                dt.Columns[i].ColumnName = "最小产品包装条码";
-                                break;
-                            case "datecode1":
-                                dt.Columns[i].ColumnName = "生产日期";
-                                break;
-                            default:
-                                break;
-                        }
-                        if (dt.Columns[i].ColumnName.ToLower() == LabelInf.Columns[j].DataPropertyName.ToLower())
-                        {
-                            dt.Columns[i].ColumnName = LabelInf.Columns[j].HeaderText;
-                            break;
-                        }
-                    }
+                    Field = (DataTable)dh.ExecuteSql("select * from CS_EXPORTSETTINGdetail left join CS_EXPORTSETTING on es_id=esd_esid where es_custcode is null and es_isdefault=-1 and esd_enable=-1 and esd_filed is not null order by esd_detno", "select");
                 }
-                eh.ExportExcel(dt, ExportFileDialog.SelectedPath, pi_date.Text + "-" + pi_inoutno.Text);
+                string Fileds = "";
+                for (int i = 0; i < Field.Rows.Count; i++)
+                {
+                    Fileds += Field.Rows[i]["esd_filed"].ToString() + ",";
+                }
+                sql.Clear();
+                sql.Append("select " + Fileds.Substring(0, Fileds.Length - 1) + " from ExportView where pib_inoutno='" + pi_inoutno.Text + "' order by pib_pdno");
+
+                DataTable dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
+                eh.ExportExcel(dt, Field, ExportFileDialog.SelectedPath, pi_date.Text + "-" + pi_inoutno.Text);
                 string close = MessageBox.Show(this.ParentForm, "导出成功,是否打开文件", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
                 if (close.ToString() == "Yes")
                     Process.Start(ExportFileDialog.SelectedPath + "\\" + pi_date.Text + "-" + pi_inoutno.Text + ".xls");