using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Infragistics.Win.UltraWinGrid; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid.ExcelExport; using System.Diagnostics; using System.IO; namespace Core.LgMes.Client.Comm { public partial class frmSlabDetail : Core.Mes.Client.Common.frmStyleBase { public frmSlabDetail() { InitializeComponent(); } public string charge_no = ""; private void frmSlabDetail_Load(object sender, EventArgs e) { setBPDetail(); } public void setBPDetail() { try { string sqlStr = ""; sqlStr = @"SELECT T.SLAB_NO,T.LG_STL_GRD,T.ORD_NO||T.ORD_SEQ ORD_NO,T.SLAB_THK||'*'||T.SLAB_WTH SLAB_SPEC,T.SLAB_LEN,T.SLAB_WGT/1000 SLAB_WGT, T.WEIGHT_WGT WEIGHT,T1.SM_CFNM,T.EXTSHAPE_DEC_EMP_ID,T2.COPING_REMARK,T2.SPOT_CHECK_REMARK,T2.REG_ID XM_EMPID,T.SLAB_DCS_DETAIL,T3.SPEC HP_SPEC FROM TBG02_SLAB_COMM T LEFT JOIN TBZ00_COMMCD T1 ON T1.LG_CD='G03004' AND T1.SM_CD = T.CRK_CD1 LEFT JOIN TBZ01_REMARK_COMM T2 ON T.SLAB_NO = T2.SLAB_NO LEFT JOIN (SELECT ROW_NUMBER() OVER (PARTITION BY A.MATERIAL_NO ORDER BY A.JUDGE_TIME DESC) RN, COUNT(*) OVER (PARTITION BY A.MATERIAL_NO ORDER BY A.JUDGE_TIME DESC) CN, A.MATERIAL_NO,CASE WHEN A.THICK IS NULL THEN '' ELSE A.THICK || '×' || A.WIDTH || '×' || A.LENGTH END SPEC FROM QCM_JUDGE_SURFACE A WHERE A.THICK IS NOT NULL) T3 ON T.SLAB_NO = T3.MATERIAL_NO AND T3.RN = T3.CN WHERE T.SLAB_NO LIKE '" + charge_no + "%' ORDER BY T.SLAB_NO"; //调用服务端方法 CoreClientParam CCP_LgEts = new CoreClientParam(); DataTable dt = new DataTable(); CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBExecute"; CCP_LgEts.MethodName = "doSimpleQueryFor3q"; CCP_LgEts.ServerParams = new object[] { sqlStr }; CCP_LgEts.SourceDataTable = dt; this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal); DataSet ds = new DataSet(); if (dt != null && dt.Rows.Count > 0) { this.dataTable1.Rows.Clear(); DataRow dr; for (int iRow = 0; iRow < dt.Rows.Count; iRow++) { dr = this.dataTable1.NewRow(); for (int jCol = 0; jCol < dt.Columns.Count; jCol++) { if (this.dataTable1.Columns.Contains(dt.Columns[jCol].ColumnName)) { dr[dt.Columns[jCol].ColumnName] = dt.Rows[iRow][jCol]; } } this.dataTable1.Rows.Add(dr); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void button1_Click(object sender, EventArgs e) { ExportDataWithSaveDialog(ref this.ultraGrid1, "板坯明细表" + DateTime.Now.ToString("yyyy-MM-dd")); } //Add on 2009-10-25 by XHJ public static void ExportDataWithSaveDialog(ref UltraGrid ultGrid, string strFileName) { try { UltraGridExcelExporter ultraGridExcelExporter1 = new UltraGridExcelExporter(); if (ultGrid.Rows.Count == 0) return; if (strFileName.Length == 0) strFileName = "未命名"; SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "保存"; dlg.OverwritePrompt = true; dlg.Filter = "Excel文件(*.xls)|*.xls"; dlg.AddExtension = true; dlg.FileName = strFileName; if (dlg.ShowDialog() == DialogResult.OK) { strFileName = dlg.FileName; ultraGridExcelExporter1.Export(ultGrid, strFileName); if (MessageBox.Show("数据导出成功!\r\n需要打开所导出文件吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ultraGridExcelExporter1.Export(ultGrid, strFileName); ProcessStartInfo p = new ProcessStartInfo(strFileName); p.WorkingDirectory = Path.GetDirectoryName(strFileName); Process.Start(p); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }