Files
Groupware/SubProject/FPJ0000/Project/fProjectIOMap.cs
2024-05-08 14:53:55 +09:00

390 lines
14 KiB
C#

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)
{
EnsureVisibleAndUsableSize();
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);
}
}
}