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 util = FCOMMON.Util; namespace FPJ0000 { public partial class fProjectIOMap : FCOMMON.fBase { string fn_fpcolsizeI = ""; string fn_fpcolsizeO = ""; string fn_fpcolsizeE = ""; int projectindex = 0; public fProjectIOMap(int project_) { InitializeComponent(); projectindex = project_; this.dsPRJ.ProjectsIOMap.TableNewRow += ProjectsSchedule_TableNewRow; fn_fpcolsizeI = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + "i.ini"); fn_fpcolsizeO = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + "o.ini"); fn_fpcolsizeE = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + "e.ini"); } void ProjectsSchedule_TableNewRow(object sender, DataTableNewRowEventArgs e) { e.Row["wuid"] = FCOMMON.info.Login.no; e.Row["wdate"] = DateTime.Now; e.Row["project"] = this.projectindex; } private void fProjectSchedule_Load(object sender, EventArgs e) { RefreshData(); } void RefreshData() { try { this.ta.Fill(this.dsPRJ.ProjectsIOMap, this.projectindex); FPUtil.ColSizeLoad(ref this.fpIN, fn_fpcolsizeI); FPUtil.ColSizeLoad(ref this.fpOut, fn_fpcolsizeO); FPUtil.ColSizeLoad(ref this.fpEtc, fn_fpcolsizeE); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } private void autoToolStripMenuItem_Click(object sender, EventArgs e) { this.fpIN.ActiveSheet.DataAutoSizeColumns = true; for (int i = 0; i < this.fpIN.ActiveSheet.Rows.Count; i++) this.fpIN.ActiveSheet.SetRowHeight(i, 25); //dv1.AutoResizeColumns(); } private void resetToolStripMenuItem_Click(object sender, EventArgs e) { foreach (FarPoint.Win.Spread.Column col in this.fpIN.ActiveSheet.Columns) { col.Width = 100; } } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { FPUtil.ColsizeSave(this.fpIN, fn_fpcolsizeI); } private void loadToolStripMenuItem_Click(object sender, EventArgs e) { FPUtil.ColSizeLoad(ref this.fpIN, fn_fpcolsizeI); } private void toolStripButton1_Click(object sender, EventArgs e) { this.Validate(); this.bsOut.EndEdit(); this.bsETC.EndEdit(); this.bsIn.EndEdit(); try { this.tam.UpdateAll(this.dsPRJ); } catch (Exception ex) { FCOMMON.Util.MsgE(ex.Message); } } private void exportListToolStripMenuItem_Click(object sender, EventArgs e) { var sd = new SaveFileDialog(); sd.Filter = "Excel|*.xls"; sd.FileName = "iomap_in"; if (sd.ShowDialog() != DialogResult.OK) return; fpIN.SaveExcel(sd.FileName, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered | FarPoint.Excel.ExcelSaveFlags.NoFormulas | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders); } private void toolStripMenuItem7_Click(object sender, EventArgs e) { var sd = new SaveFileDialog(); sd.Filter = "Excel|*.xls"; sd.FileName = "iomap_out"; if (sd.ShowDialog() != DialogResult.OK) return; fpIN.SaveExcel(sd.FileName, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered | FarPoint.Excel.ExcelSaveFlags.NoFormulas | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders); } private void toolStripMenuItem13_Click(object sender, EventArgs e) { var sd = new SaveFileDialog(); sd.Filter = "Excel|*.xls"; sd.FileName = "iomap_etc"; if (sd.ShowDialog() != DialogResult.OK) return; fpIN.SaveExcel(sd.FileName, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered | FarPoint.Excel.ExcelSaveFlags.NoFormulas | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders); } private void toolStripMenuItem9_Click(object sender, EventArgs e) { this.fpEtc.ActiveSheet.DataAutoSizeColumns = true; for (int i = 0; i < this.fpEtc.ActiveSheet.Rows.Count; i++) this.fpEtc.ActiveSheet.SetRowHeight(i, 25); //dv1.AutoResizeColumns(); } private void toolStripMenuItem3_Click(object sender, EventArgs e) { this.fpOut.ActiveSheet.DataAutoSizeColumns = true; for (int i = 0; i < this.fpOut.ActiveSheet.Rows.Count; i++) this.fpOut.ActiveSheet.SetRowHeight(i, 25); //dv1.AutoResizeColumns(); } private void toolStripMenuItem4_Click(object sender, EventArgs e) { foreach (FarPoint.Win.Spread.Column col in this.fpOut.ActiveSheet.Columns) { col.Width = 100; } } private void toolStripMenuItem10_Click(object sender, EventArgs e) { foreach (FarPoint.Win.Spread.Column col in this.fpEtc.ActiveSheet.Columns) { col.Width = 100; } } private void toolStripMenuItem5_Click(object sender, EventArgs e) { FPUtil.ColsizeSave(this.fpOut, fn_fpcolsizeO); } private void toolStripMenuItem11_Click(object sender, EventArgs e) { FPUtil.ColsizeSave(this.fpEtc, fn_fpcolsizeE); } private void toolStripMenuItem6_Click(object sender, EventArgs e) { FPUtil.ColSizeLoad(ref this.fpOut, fn_fpcolsizeO); } private void toolStripMenuItem12_Click(object sender, EventArgs e) { FPUtil.ColSizeLoad(ref this.fpEtc, fn_fpcolsizeE); } private void bindingNavigatorAddNewItem1_Click(object sender, EventArgs e) { var newitem = bsIn.AddNew() as DataRowView; newitem["Dir"] = "IN"; } private void bindingNavigatorAddNewItem2_Click(object sender, EventArgs e) { var newitem = bsOut.AddNew() as DataRowView; newitem["Dir"] = "OUT"; } private void bindingNavigatorAddNewItem3_Click(object sender, EventArgs e) { var newitem = bsETC.AddNew() as DataRowView; newitem["Dir"] = "ETC"; } private void DefaultMake_Click(object sender, EventArgs e) { if (this.dsPRJ.ProjectsIOMap.Rows.Count > 0) { util.MsgE("기존에 저장된 자료가 있으면 생성하지 못합니다."); return; } var dlg = util.MsgQ("입력 64, 출력 64개의 목록을 생성 합니다\n진행 할까요?"); if (dlg != DialogResult.Yes) return; for (int i = 0; i < 64; i++) { //input var newdi = this.dsPRJ.ProjectsIOMap.NewProjectsIOMapRow(); newdi.Dir = "IN"; newdi.PIn = "X" + i.ToString("X2"); this.dsPRJ.ProjectsIOMap.AddProjectsIOMapRow(newdi); //output var newdo = this.dsPRJ.ProjectsIOMap.NewProjectsIOMapRow(); newdo.Dir = "OUT"; newdo.PIn = "Y" + i.ToString("X2"); this.dsPRJ.ProjectsIOMap.AddProjectsIOMapRow(newdo); } } private void toolStripButton2_Click(object sender, EventArgs e) { //var bs = new BindingSource(this.dsPRJ, "ProjectsIOMap"); //bs.Sort = "Dir desc"; //var fp = new FarPoint.Win.Spread.FpSpread(); //var newsheet = new FarPoint.Win.Spread.SheetView(); //newsheet.SheetName = "Sheet1"; //newsheet.DataSource = bs; //fp.Sheets.Add(newsheet); var sd = new SaveFileDialog(); sd.Filter = "Excel|*.xlsx"; sd.FileName = "iomap"; if (sd.ShowDialog() != DialogResult.OK) return; //var rlt = fp.SaveExcel(sd.FileName, // FarPoint.Excel.ExcelSaveFlags.SaveAsViewed // | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered // | FarPoint.Excel.ExcelSaveFlags.NoFormulas // | FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders); //if (rlt == false) // FCOMMON.Util.MsgE("저장 실패"); libxl.Book book;// = new libxl.BinBook(); book = new libxl.XmlBook(); book.setKey(FCOMMON.info.libxlCompany, FCOMMON.info.libxlKey); var cfTitle = book.addFormat(); cfTitle.alignH = libxl.AlignH.ALIGNH_CENTER; cfTitle.alignV = libxl.AlignV.ALIGNV_CENTER; cfTitle.setBorder(libxl.BorderStyle.BORDERSTYLE_THICK); var cfTitleIn = book.addFormat(); cfTitleIn.alignH = libxl.AlignH.ALIGNH_CENTER; cfTitleIn.alignV = libxl.AlignV.ALIGNV_CENTER; cfTitleIn.fillPattern = libxl.FillPattern.FILLPATTERN_SOLID; cfTitleIn.patternForegroundColor = libxl.Color.COLOR_YELLOW; var cfTitleOut = book.addFormat(); cfTitleOut.alignH = libxl.AlignH.ALIGNH_CENTER; cfTitleOut.alignV = libxl.AlignV.ALIGNV_CENTER; cfTitleOut.fillPattern = libxl.FillPattern.FILLPATTERN_SOLID; cfTitleOut.patternForegroundColor = libxl.Color.COLOR_PINK; var cfTitleEtc = book.addFormat(); cfTitleEtc.alignH = libxl.AlignH.ALIGNH_CENTER; cfTitleEtc.alignV = libxl.AlignV.ALIGNV_CENTER; cfTitleEtc.fillPattern = libxl.FillPattern.FILLPATTERN_SOLID; cfTitleEtc.patternForegroundColor = libxl.Color.COLOR_TEAL_CL; var sheet = book.addSheet("IOMap"); sheet.writeStr(0, 1, "INPUT", cfTitle); sheet.setMerge(0, 0, 1, 3); var cf = sheet.cellFormat(0, 1); sheet.writeStr(1, 1, "Pin", cfTitleIn); sheet.writeStr(1, 2, "Title", cfTitleIn); sheet.writeStr(1, 3, "Remark", cfTitleIn); sheet.writeStr(0, 5, "OUTPUT", cfTitle); sheet.setMerge(0, 0, 5, 7); sheet.writeStr(1, 5, "Pin", cfTitleOut); sheet.writeStr(1, 6, "Title", cfTitleOut); sheet.writeStr(1, 7, "Remark", cfTitleOut); sheet.writeStr(0, 9, "ETC", cfTitle); sheet.setMerge(0, 0, 9, 12); sheet.writeStr(1, 9, "Dir", cfTitleEtc); sheet.writeStr(1, 10, "Pin", cfTitleEtc); sheet.writeStr(1, 11, "Title", cfTitleEtc); sheet.writeStr(1, 12, "Remark", cfTitleEtc); var row = 2; for (int r = 0; r < fpIN.ActiveSheet.RowCount; r++) { var col = 1; var pin = fpIN.ActiveSheet.Cells[r, 0].Value?.ToString() ?? string.Empty; var title = fpIN.ActiveSheet.Cells[r, 1].Value?.ToString() ?? string.Empty; var remark = fpIN.ActiveSheet.Cells[r, 2].Value?.ToString() ?? string.Empty; sheet.writeStr(row, col++, pin); sheet.writeStr(row, col++, title); sheet.writeStr(row, col++, remark); row += 1; } row = 2; for (int r = 0; r < fpOut.ActiveSheet.RowCount; r++) { var col = 5; var pin = fpOut.ActiveSheet.Cells[r, 0].Value?.ToString() ?? string.Empty; var title = fpOut.ActiveSheet.Cells[r, 1].Value?.ToString() ?? string.Empty; var remark = fpOut.ActiveSheet.Cells[r, 2].Value?.ToString() ?? string.Empty; sheet.writeStr(row, col++, pin); sheet.writeStr(row, col++, title); sheet.writeStr(row, col++, remark); row += 1; } row = 2; for (int r = 0; r < fpEtc.ActiveSheet.RowCount; r++) { var col = 9; var dir = fpEtc.ActiveSheet.Cells[r, 0].Value?.ToString() ?? string.Empty; var pin = fpEtc.ActiveSheet.Cells[r, 1].Value?.ToString() ?? string.Empty; var title = fpEtc.ActiveSheet.Cells[r, 2].Value?.ToString() ?? string.Empty; var remark = fpEtc.ActiveSheet.Cells[r, 3].Value?.ToString() ?? string.Empty; sheet.writeStr(row, col++, dir); sheet.writeStr(row, col++, pin); sheet.writeStr(row, col++, title); sheet.writeStr(row, col++, remark); row += 1; } book.save(sd.FileName); util.RunExplorer(sd.FileName); } } }