private void frmTaMultiSelect_Load(object sender, System.EventArgs e) { ar = new ArrayList(); ar.Add(null); PublicFunction.L_Init_Label(this); Func.RecordSet rs = new Func.RecordSet(Detail + " where " + key1 + "=N''", PublicFunction.C_con); vs.Cols.Count = rs.cols + 1; for (int c = 1; c < vs.Cols.Count; c++) { if (c > cols) { vs.Cols[c].Visible = false; } vs.Cols[c].Name = rs.Field(c - 1); if (vs.Cols[c].Name == "SYS_SEL") { vs.Cols[c].Caption = PublicFunction.L_GetLabel_VS("Public", vs.Cols[c].Name); vs.Cols[c].DataType = typeof(System.Boolean); } else { vs.Cols[c].Caption = PublicFunction.L_GetLabel_VS(_LabelID, vs.Cols[c].Name); } } // //vs.Cols[key1].Visible=false; // //if (key2!="") vs.Cols[key2].Visible=false; InitTree(); }
//Cac phuong thuc de doc ghi file private bool WriteToTextFile(Func.RecordSet rs) { StringBuilder obj = new StringBuilder(); for (int i = 0; i < rs.rows; i++) { if (i < rs.rows - 1) { obj.AppendFormat("{0}~!~!~!~!~{1}~!~!~!~!~{2}~!~!~!~!~{3}~!~!~!~!~{4}~!~!~!~!~{5}~!~!~!~!~{6}~!~!~!~!~{7}\r\n", rs.record(i, "EFF_YM"), rs.record(i, "SUB_ID"), rs.record(i, "CAS_DT"), rs.record(i, "ORD_NO"), rs.record(i, "TYP_ID"), rs.record(i, "COL_NO"), rs.record(i, "DES_MY"), rs.record(i, "TRN_NO")); } else { obj.AppendFormat("{0}~!~!~!~!~{1}~!~!~!~!~{2}~!~!~!~!~{3}~!~!~!~!~{4}~!~!~!~!~{5}~!~!~!~!~{6}~!~!~!~!~{7}", rs.record(i, "EFF_YM"), rs.record(i, "SUB_ID"), rs.record(i, "CAS_DT"), rs.record(i, "ORD_NO"), rs.record(i, "TYP_ID"), rs.record(i, "COL_NO"), rs.record(i, "DES_MY"), rs.record(i, "TRN_NO")); } } try { FileInfo f = new FileInfo("tam.txt"); if (f.Exists) { f.Delete(); } StreamWriter writer = new StreamWriter(@"tam.txt", false); writer.Write(obj.ToString()); writer.Close(); } catch (Exception) { return(false); } return(true); }
public void InsertPre_Pay(string subject) { string SUB_NO = subject; string sql_pre = "SELECT * FROM FILJ13A WHERE EFF_YM='" + CalculatePre_Pay(eff_ym) + "' AND SUB_ID between N'" + sub_id1 + "' and N'" + sub_id2 + "' AND RSV_FG=1"; string sql_insert = ""; Func.RecordSet rs_pre = new Func.RecordSet(sql_pre, PublicFunction.C_con); if (rs_pre.rows > 0) { for (int i = 0; i < rs_pre.rows; i++) { sql_insert = "INSERT INTO FILJ13A VALUES ('" + eff_ym + "','" + rs_pre.record(i, "SUB_ID") + "','" + rs_pre.record(i, "CAS_DT") + "','" + SUB_NO + "','" + rs_pre.record(i, "ORD_NO") + "','" + rs_pre.record(i, "TYP_ID") + "','" + rs_pre.record(i, "COL_NO") + "','" + rs_pre.record(i, "COL_DR") + "'," + T_String.IsNullTo0(rs_pre.record(i, "OUT_QT") + "") + "," + T_String.IsNullTo0(rs_pre.record(i, "RET_QT") + "") + "," + T_String.IsNullTo0(rs_pre.record(i, "ACC_QT") + "") + "," + T_String.IsNullTo00(rs_pre.record(i, "UNT_PR") + "") + "," + T_String.IsNullTo00(rs_pre.record(i, "INC_MY") + "") + "," + T_String.IsNullTo00(rs_pre.record(i, "HLD_MY") + "") + "," + T_String.IsNullTo00(rs_pre.record(i, "DES_MY") + "") + ",0," + T_String.IsNullTo00(rs_pre.record(i, "BAL_MY") + "") + ",'" + rs_pre.record(i, "TRN_NO") + "')"; PublicFunction.SQL_Execute(sql_insert); } } }
private void InitTree() { Func.RecordSet rs = new Func.RecordSet(Master, PublicFunction.C_con); vs.Tree.Column = 1; vs.Rows.Count = 1; for (int i = 2; i < vs.Cols.Count; i++) { vs.Cols[i].AllowEditing = false; } vs.Cols[1].AllowEditing = true; Node a; for (int i = 0; i < rs.rows; i++) { a = vs.Rows.InsertNode(vs.Rows.Count, 0); ar.Add(a); //vs.Rows[vs.Rows.Count-1].AllowEditing=false; //vs.SetCellCheck(vs.Rows.Count-1,1, CheckEnum.Unchecked); vs.SetCellCheck(vs.Rows.Count - 1, 1, CheckEnum.Unchecked); for (int j = 0; j < rs.cols; j++) { vs[vs.Rows.Count - 1, j + 1] = rs.record(i, j); } if (key1 != "" && key2 != "") { InitDetail(rs.record(i, key1), rs.record(i, key2)); } else { if (key1 != "") { InitDetail(rs.record(i, key1), ""); } } a.Expanded = false; } }
private void InitDetail(string f1, string f2) { Func.RecordSet rs; if (f2 != "") { rs = new Func.RecordSet(Detail + " where " + key1 + "=N'" + f1 + "' and " + key2 + "=N'" + f2 + "'" + orderby, PublicFunction.C_con); } else { rs = new Func.RecordSet(Detail + " where " + key1 + "=N'" + f1 + "'" + orderby, PublicFunction.C_con); } Node a; for (int i = 0; i < rs.rows; i++) { a = vs.Rows.InsertNode(vs.Rows.Count, 1); vs.SetCellCheck(vs.Rows.Count - 1, 1, CheckEnum.Unchecked); ar.Add(a); for (int j = 0; j < rs.cols; j++) { vs[vs.Rows.Count - 1, j + 1] = rs.record(i, j); } } }
private void cmd_ok_Click(object sender, System.EventArgs e) { int RCV_QT = 0, PAY_QT = 0; double INC_MY = 0, BAL_MY = 0, HLD_MY = 0, DES_MY = 0; string SUB_NO = PublicFunction.L_GetLabel("frmSearch3", 3); if (_rs.rows <= 0) { InsertPre_Pay(SUB_NO); // dua vao cac payment thang truoc chua thanh toan this.DialogResult = DialogResult.OK; return; } else { string sql = ""; if (keep_amount == "Y") { sql = "select EFF_YM,SUB_ID,CAS_DT,ORD_NO,TYP_ID,COL_NO,INC_MY,DES_MY,TRN_NO from FILJ13A where EFF_YM='" + eff_ym + "' AND SUB_ID between N'" + sub_id1 + "' and N'" + sub_id2 + "'"; Func.RecordSet rs1 = new Func.RecordSet(sql, PublicFunction.C_con); if (rs1.rows > 0) { sql = "DELETE FROM FILJ13A WHERE EFF_YM='" + eff_ym + "' AND SUB_ID between N'" + sub_id1 + "' and N'" + sub_id2 + "'"; PublicFunction.SQL_Execute(sql); InsertPre_Pay(SUB_NO); // dua vao cac payment thang truoc chua thanh toan if (WriteToTextFile(rs1)) { ArrayList a = ReadFromTextFile(); for (int i = 0; i < _rs.rows; i++) { bool flag = false; for (int j = 0; j < a.Count; j++) { string[] row = (string[])a[j]; if (_rs.record(i, "SUB_ID") == row[1] && _rs.record(i, "ORD_NO") == row[3] && _rs.record(i, "TYP_ID") == row[4] && _rs.record(i, "COL_NO") == row[5] && _rs.record(i, "TRN_NO") == row[7] && CalculatePre_Pay(DateTime.Now.ToString("yyyy/MM/dd")) != row[2].Substring(0, 7)) { flag = true; RCV_QT = T_String.IsNullTo0(vs.Rows[i + 1]["RCV_QT"] + ""); PAY_QT = T_String.IsNullTo0(vs.Rows[i + 1]["PAY_QT"] + ""); INC_MY = PAY_QT * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); HLD_MY = (RCV_QT - PAY_QT) * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); DES_MY = T_String.IsNullTo00(row[6] + ""); BAL_MY = INC_MY - DES_MY; sql = "INSERT INTO FILJ13A (EFF_YM,SUB_ID,CAS_DT,SUB_NO,ORD_NO,TYP_ID,COL_NO,COL_DR,RET_QT,ACC_QT,UNT_PR,INC_MY,HLD_MY,DES_MY,RSV_FG,BAL_MY,TRN_NO,OUT_QT) " + "VALUES ('" + eff_ym + "',N'" + _rs.record(i, "SUB_ID") + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + SUB_NO + "', " + "'" + _rs.record(i, "ORD_NO") + "', '" + _rs.record(i, "TYP_ID") + "','" + _rs.record(i, "COL_NO") + "','" + _rs.record(i, "LOT_DR") + "', " + RCV_QT + ", " + PAY_QT + "," + T_String.IsNullTo00(_rs.record(i, "UNT_PR") + "") + "," + INC_MY + "," + HLD_MY + "," + DES_MY + "," + 0 + "," + BAL_MY + ",'" + vs.Rows[i + 1]["TRN_NO"] + "', " + T_String.IsNullTo0(_rs.record(i, "SEND_QT") + "") + ")"; PublicFunction.SQL_Execute(sql); break; } } if (flag == false) { RCV_QT = T_String.IsNullTo0(vs.Rows[i + 1]["RCV_QT"] + ""); PAY_QT = T_String.IsNullTo0(vs.Rows[i + 1]["PAY_QT"] + ""); INC_MY = PAY_QT * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); HLD_MY = (RCV_QT - PAY_QT) * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); DES_MY = INC_MY - HLD_MY; BAL_MY = INC_MY - DES_MY; sql = "INSERT INTO FILJ13A (EFF_YM,SUB_ID,CAS_DT,SUB_NO,ORD_NO,TYP_ID,COL_NO,COL_DR,RET_QT,ACC_QT,UNT_PR,INC_MY,HLD_MY,DES_MY,RSV_FG,BAL_MY,TRN_NO,OUT_QT) " + "VALUES ('" + eff_ym + "',N'" + _rs.record(i, "SUB_ID") + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + SUB_NO + "', " + "'" + _rs.record(i, "ORD_NO") + "', '" + _rs.record(i, "TYP_ID") + "','" + _rs.record(i, "COL_NO") + "', '" + _rs.record(i, "LOT_DR") + "', " + RCV_QT + ", " + PAY_QT + "," + T_String.IsNullTo00(_rs.record(i, "UNT_PR") + "") + ", " + INC_MY + "," + HLD_MY + "," + DES_MY + "," + 0 + "," + BAL_MY + ",'" + vs.Rows[i + 1]["TRN_NO"] + "', " + T_String.IsNullTo0(_rs.record(i, "SEND_QT") + "") + ")"; PublicFunction.SQL_Execute(sql); } } } } else // co giu lai debit nhung ko co trong database { InsertPre_Pay(SUB_NO); // dua vao cac payment thang truoc chua thanh toan for (int i = 0; i < _rs.rows; i++) { RCV_QT = T_String.IsNullTo0(vs.Rows[i + 1]["RCV_QT"] + ""); PAY_QT = T_String.IsNullTo0(vs.Rows[i + 1]["PAY_QT"] + ""); INC_MY = PAY_QT * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); HLD_MY = (RCV_QT - PAY_QT) * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); DES_MY = INC_MY - HLD_MY; BAL_MY = INC_MY - DES_MY; sql = "INSERT INTO FILJ13A (EFF_YM,SUB_ID,CAS_DT,SUB_NO,ORD_NO,TYP_ID,COL_NO,COL_DR,RET_QT,ACC_QT,UNT_PR,INC_MY,HLD_MY,DES_MY,RSV_FG,BAL_MY,TRN_NO,OUT_QT) " + "VALUES ('" + eff_ym + "',N'" + _rs.record(i, "SUB_ID") + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + SUB_NO + "', " + "'" + _rs.record(i, "ORD_NO") + "', '" + _rs.record(i, "TYP_ID") + "','" + _rs.record(i, "COL_NO") + "','" + _rs.record(i, "LOT_DR") + "', " + RCV_QT + ", " + PAY_QT + "," + T_String.IsNullTo00(_rs.record(i, "UNT_PR") + "") + ", " + INC_MY + "," + HLD_MY + "," + DES_MY + "," + 0 + "," + BAL_MY + ",'" + vs.Rows[i + 1]["TRN_NO"] + "', " + T_String.IsNullTo0(_rs.record(i, "SEND_QT") + "") + ")"; PublicFunction.SQL_Execute(sql); } } } else // ko giu lai debit { sql = "DELETE FROM FILJ13A WHERE EFF_YM='" + eff_ym + "' AND SUB_ID between N'" + sub_id1 + "' and N'" + sub_id2 + "'"; PublicFunction.SQL_Execute(sql); InsertPre_Pay(SUB_NO); // dua vao cac payment thang truoc chua thanh toan for (int i = 0; i < _rs.rows; i++) { RCV_QT = T_String.IsNullTo0(vs.Rows[i + 1]["RCV_QT"] + ""); PAY_QT = T_String.IsNullTo0(vs.Rows[i + 1]["PAY_QT"] + ""); INC_MY = PAY_QT * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); HLD_MY = (RCV_QT - PAY_QT) * T_String.IsNullTo00(_rs.record(i, "UNT_PR") + ""); DES_MY = INC_MY - HLD_MY; BAL_MY = INC_MY - DES_MY; sql = "INSERT INTO FILJ13A (EFF_YM,SUB_ID,CAS_DT,SUB_NO,ORD_NO,TYP_ID,COL_NO,COL_DR,RET_QT,ACC_QT,UNT_PR,INC_MY,HLD_MY,DES_MY,RSV_FG,BAL_MY,TRN_NO,OUT_QT) " + "VALUES ('" + eff_ym + "',N'" + _rs.record(i, "SUB_ID") + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + SUB_NO + "', " + "'" + _rs.record(i, "ORD_NO") + "', '" + _rs.record(i, "TYP_ID") + "','" + _rs.record(i, "COL_NO") + "','" + _rs.record(i, "LOT_DR") + "', " + RCV_QT + ", " + PAY_QT + "," + T_String.IsNullTo00(_rs.record(i, "UNT_PR") + "") + ", " + INC_MY + "," + HLD_MY + "," + DES_MY + "," + 0 + "," + BAL_MY + ",'" + vs.Rows[i + 1]["TRN_NO"] + "', " + T_String.IsNullTo0(_rs.record(i, "SEND_QT") + "") + ")"; PublicFunction.SQL_Execute(sql); } } } Accept(); }
public string GET_SQL(Func.RecordSet rs, string where) { string sql = "", wh = "", sort = ""; for (int i = 0; i < rs.rows; i++) { string s = T_String.GetDataFromSQL("SQL_DR", "SYS_BS_TAPRINTOUT_GETCOLS", "COL_ID='" + rs.record(i, "COL_ID") + "'"); if (sql != "") { sql += ","; } if (s != null && s != "") // rs.record(i,"TAB_DR")=="" || rs.record(i,"TAB_DR")==null) { sql += "(" + s + ") " + rs.record(i, "COL_ID"); } else { sql += rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID"); } if (rs.record(i, "SRT_BT") + "" == "True") { if (sort != "") { sort += ","; } sort += rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID"); } if (rs.record(i, "CON_C1") + "" != "" && rs.record(i, "CON_D1") + "" != "") // dieu kien 1 { wh += "and (" + rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID") + " " + rs.record(i, "CON_C1") + " "; if (rs.record(i, "COL_ID") == "1") // datetime { wh += "'" + DateTime.Parse(rs.record(i, "CON_D1") + "").ToString("yyyy/MM/dd") + "'"; } else { if (rs.record(i, "COL_ID") == "2") // bit { if (rs.record(i, "CON_D1") + "" == "1") { wh += rs.record(i, "CON_D1"); } else { wh += rs.record(i, "CON_D1") + " or " + rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID") + " is null"; } } else // char { if (rs.record(i, "CON_C1") == "like") { wh += "N'%" + rs.record(i, "CON_D1") + "%'"; } else { wh += "N'" + rs.record(i, "CON_D1") + "'"; } } } if (rs.record(i, "CON_C2") + "" != "" && rs.record(i, "CON_D2") + "" != "") //dieu kien 2 { wh += " " + rs.record(i, "AND_OR") + " "; wh += "(" + rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID") + " " + rs.record(i, "CON_C2") + " "; if (rs.record(i, "COL_ID") == "2") // bit { if (rs.record(i, "CON_D2") + "" == "1") { wh += rs.record(i, "CON_D2"); } else { wh += rs.record(i, "CON_D2") + " or " + rs.record(i, "TAB_DR") + "." + rs.record(i, "COL_ID") + " is null"; } } else // char { if (rs.record(i, "CON_C2") == "like") { wh += "N'%" + rs.record(i, "CON_D2") + "%'"; } else { wh += "N'" + rs.record(i, "CON_D2") + "'"; } } } wh += ")"; } } string from; from = " from FILC06A,FILB01A where FILC06A.EMP_ID=FILB01A.EMP_ID "; sql = "select " + sql + from + wh + " and " + where; if (sort != "") { sql += " order by " + sort; } return(sql); }
public void RPTta(C1XLBook book, string RPT_ID, string title, string wh) { //string ID="RPT1"; book = new C1XLBook(); XLSheet sheet = book.Sheets[0]; FormatExcel.Init_Excel(sheet); sheet.Name = "Sheet1"; XLStyle Title = FormatExcel.Get_Style(book, 16, true, XLAlignVertEnum.Center, XLAlignHorzEnum.Center, true, false, ""); XLStyle Caption = FormatExcel.Get_Style(book, 10, true, XLAlignVertEnum.Center, XLAlignHorzEnum.Center, true, true, ""); XLStyle StringN = FormatExcel.Get_Style(book, 10, false, XLAlignVertEnum.Undefined, XLAlignHorzEnum.Undefined, false, false, ""); XLStyle String = FormatExcel.Get_Style(book, 10, false, XLAlignVertEnum.Undefined, XLAlignHorzEnum.Undefined, false, true, ""); XLStyle INT = FormatExcel.Get_Style(book, 10, false, XLAlignVertEnum.Undefined, XLAlignHorzEnum.Undefined, false, true, "#,###"); XLStyle GIO = FormatExcel.Get_Style(book, 10, false, XLAlignVertEnum.Undefined, XLAlignHorzEnum.Undefined, false, true, "#,###"); XLStyle DOU = FormatExcel.Get_Style(book, 10, false, XLAlignVertEnum.Undefined, XLAlignHorzEnum.Undefined, false, true, "#,###.##"); string sql = ""; sql = "Select * from FILE07B where RPT_ID=N'" + RPT_ID + "' and SHO_BT=1 ORDER BY SEQ_NO"; Func.RecordSet rscon = new Func.RecordSet(sql, PublicFunction.C_con); sql = GET_SQL(rscon, wh); Func.RecordSet rs = new RecordSet(sql, PublicFunction.C_con); try { if (rs.rows <= 0) { return; } } catch { return; } int r = 0, cols = 0; ArrayList a = new ArrayList(); a.Add(0); sheet.Columns[0].Width = 680; for (int i = 0; i < rs.cols; i++) { cols++; a.Add(i); } // tieu de sheet.MergedCells.Add(r, 0, 1, cols); sheet.Rows[r].Height = 800; FormatExcel.Set_Cell(sheet[r, 0], T_String.GetDataFromSQL("COM_N1", "FILA01A"), Title); r++; sheet.MergedCells.Add(r, 0, 1, cols); sheet.Rows[r].Height = 800; FormatExcel.Set_Cell(sheet[r, 0], title, Title); r++; FormatExcel.Set_Cell(sheet[r, cols - 2], PublicFunction.L_Get_RPT("RptTa", 1) + ":" + PublicFunction.A_UserID, StringN); r++; FormatExcel.Set_Cell(sheet[r, cols - 2], PublicFunction.L_Get_RPT("RptTa", 2) + ":" + T_String.GetDate().ToString("yyyy/MM/dd HH:mm"), StringN); r++; FormatExcel.Set_Cell(sheet[r, 0], "STT", Caption); for (int i = 0; i < rscon.rows; i++) { FormatExcel.Set_Cell(sheet[r, i + 1], rscon.record(i, "COL_NM"), Caption); sheet.Columns[i + 1].Width = T_String.IsNullTo0(rscon.record(i, "WID_VL")) * 17; } r++; // for (int i = 0; i < rs.rows; i++) { FormatExcel.Set_Cell(sheet[r, 0], i + 1 + "", INT); for (int c = 0; c < rscon.rows; c++) { int c1 = c + 1; switch (rscon.record(c, "TYP_ID") + "") { case "1": // DateTime { try { FormatExcel.Set_Cell(sheet[r, c1], DateTime.Parse(rs.record(i, c) + "").ToString("yyyy/MM/dd"), String); } catch { FormatExcel.Set_Cell(sheet[r, c1], "", String); } break; } case "2": // boolean { if (rs.record(i, c) + "" != "True") { FormatExcel.Set_Cell(sheet[r, c1], "False", String); } else { FormatExcel.Set_Cell(sheet[r, c1], "True", String); } break; } case "": { FormatExcel.Set_Cell(sheet[r, c1], rs.record(i, c), String); break; } case "3": // 00:00 { FormatExcel.Set_Cell(sheet[r, c1], T_String.IsNullTo00(rs.record(i, c)).ToString("##:##"), String); // if(rscon.record(c,"SUM_BT")+""=="True") // { // a[c1]= T_String.CongTG(T_String.IsNullTo00(a[c1]+""),T_String.IsNullTo00(rs.record(i,c))); // } break; } case "4": // double { FormatExcel.Set_Cell(sheet[r, c1], T_String.IsNullTo00(rs.record(i, c)).ToString("#,###.##"), DOU); if (rscon.record(c, "SUM_BT") + "" == "True") { a[c1] = T_String.IsNullTo00(a[c1] + "") + T_String.IsNullTo00(rs.record(i, c)); } break; } case "5": // int { FormatExcel.Set_Cell(sheet[r, c1], T_String.IsNullTo00(rs.record(i, c)).ToString("#,###.##"), INT); if (rscon.record(c, "SUM_BT") + "" == "True") { a[c1] = T_String.IsNullTo00(a[c1] + "") + T_String.IsNullTo00(rs.record(i, c)); } break; } } } r++; if (i + 1 == rs.rows) //dong cuoi { for (int c = 0; c < rscon.rows; c++) { int c1 = c + 1; if (rscon.record(c, "SUM_BT") + "" == "True") { switch (rscon.record(c, "TYP_ID") + "") { // case "3": // 00:00 // { // FormatExcel.Set_Cell(sheet[r,c1], T_String.IsNullTo00(a[c1]+"").ToString("##:##"),String); // break; // } case "4": // double { FormatExcel.Set_Cell(sheet[r, c1], T_String.IsNullTo00(a[c1] + "").ToString("#,###.##"), DOU); break; } case "5": // int { FormatExcel.Set_Cell(sheet[r, c1], T_String.IsNullTo00(a[c1] + "").ToString("#,###.##"), INT); break; } } } } } } // } try { string fileName = Application.StartupPath + @"\\Reports\\TAPO_" + RPT_ID + ".xls"; book.Save(fileName); System.Diagnostics.Process.Start(fileName); } catch { MessageBox.Show("You must close TAPO_" + RPT_ID + ".xls file first!!!!!"); return; } }