적정인원보고서 완료

This commit is contained in:
chi
2020-11-09 08:20:03 +09:00
parent ed3517eb79
commit ce56a715f0
56 changed files with 5371 additions and 1760 deletions

View File

@@ -38,10 +38,11 @@
FarPoint.Win.Spread.CellType.TextCellType textCellType6 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType7 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType8 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType9 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType2 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType3 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType9 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType10 = new FarPoint.Win.Spread.CellType.TextCellType();
this.bn = new System.Windows.Forms.BindingNavigator(this.components);
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.dsMSSQL = new FPJ0000.dsPRJ();
@@ -66,6 +67,7 @@
this.btReport = new System.Windows.Forms.ToolStripButton();
this.btReportDay = new System.Windows.Forms.ToolStripButton();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
this.cm = new System.Windows.Forms.ContextMenuStrip(this.components);
this.columnSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -137,15 +139,16 @@
this.btFind,
this.btReport,
this.btReportDay,
this.toolStripButton1});
this.bn.Location = new System.Drawing.Point(0, 564);
this.toolStripButton1,
this.toolStripButton3});
this.bn.Location = new System.Drawing.Point(0, 607);
this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.bindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(1142, 25);
this.bn.Size = new System.Drawing.Size(1240, 25);
this.bn.TabIndex = 0;
this.bn.Text = "bindingNavigator1";
//
@@ -329,6 +332,16 @@
this.toolStripButton1.Text = "작업분포";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// toolStripButton3
//
this.toolStripButton3.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image")));
this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton3.Name = "toolStripButton3";
this.toolStripButton3.Size = new System.Drawing.Size(111, 22);
this.toolStripButton3.Text = "적정인원보고서";
this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click);
//
// cm
//
this.cm.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
@@ -475,7 +488,7 @@
this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(1142, 467);
this.fpSpread1.Size = new System.Drawing.Size(1240, 510);
this.fpSpread1.StatusBarVisible = true;
this.fpSpread1.TabIndex = 2;
//
@@ -485,22 +498,23 @@
this.fpSpread1_Sheet1.SheetName = "Sheet1";
// Formulas and custom names must be loaded with R1C1 reference style
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1;
this.fpSpread1_Sheet1.ColumnCount = 12;
this.fpSpread1_Sheet1.ColumnCount = 13;
this.fpSpread1_Sheet1.ActiveColumnIndex = -1;
this.fpSpread1_Sheet1.ActiveRowIndex = -1;
this.fpSpread1_Sheet1.AutoGenerateColumns = false;
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "날짜";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 1).Value = "WW";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 2).Value = "요청부서";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 3).Value = "패키지";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 4).Value = "상태";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 5).Value = "업무형태";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 6).Value = "업무분류";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 7).Value = "프로젝트(아이템)";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 8).Value = "*";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 9).Value = "시간";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 10).Value = "초과";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 11).Value = "비고";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 2).Value = "담당";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 3).Value = "요청부서";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 4).Value = "패키지";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 5).Value = "태";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 6).Value = "업무형태";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 7).Value = "업무분류";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 8).Value = "프로젝트(아이템)";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 9).Value = "*";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 10).Value = "시간";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 11).Value = "초과";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 12).Value = "비고";
this.fpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 28F;
this.fpSpread1_Sheet1.Columns.Get(0).CellType = textCellType1;
this.fpSpread1_Sheet1.Columns.Get(0).DataField = "pdate";
@@ -512,66 +526,71 @@
this.fpSpread1_Sheet1.Columns.Get(1).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(1).Label = "WW";
this.fpSpread1_Sheet1.Columns.Get(1).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(2).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(2).CellType = textCellType3;
this.fpSpread1_Sheet1.Columns.Get(2).DataField = "requestpart";
this.fpSpread1_Sheet1.Columns.Get(2).Label = "요청부서";
this.fpSpread1_Sheet1.Columns.Get(2).Width = 78F;
this.fpSpread1_Sheet1.Columns.Get(2).DataField = "username";
this.fpSpread1_Sheet1.Columns.Get(2).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(2).Label = "담당";
this.fpSpread1_Sheet1.Columns.Get(2).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(3).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(3).CellType = textCellType4;
this.fpSpread1_Sheet1.Columns.Get(3).DataField = "package";
this.fpSpread1_Sheet1.Columns.Get(3).Label = "패키지";
this.fpSpread1_Sheet1.Columns.Get(3).Width = 86F;
this.fpSpread1_Sheet1.Columns.Get(3).DataField = "requestpart";
this.fpSpread1_Sheet1.Columns.Get(3).Label = "요청부서";
this.fpSpread1_Sheet1.Columns.Get(3).Width = 78F;
this.fpSpread1_Sheet1.Columns.Get(4).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(4).CellType = textCellType5;
this.fpSpread1_Sheet1.Columns.Get(4).DataField = "status";
this.fpSpread1_Sheet1.Columns.Get(4).Label = "상태";
this.fpSpread1_Sheet1.Columns.Get(5).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(4).DataField = "package";
this.fpSpread1_Sheet1.Columns.Get(4).Label = "패키지";
this.fpSpread1_Sheet1.Columns.Get(4).Width = 86F;
this.fpSpread1_Sheet1.Columns.Get(5).CellType = textCellType6;
this.fpSpread1_Sheet1.Columns.Get(5).DataField = "type";
this.fpSpread1_Sheet1.Columns.Get(5).Label = "업무형태";
this.fpSpread1_Sheet1.Columns.Get(5).Width = 84F;
this.fpSpread1_Sheet1.Columns.Get(5).DataField = "status";
this.fpSpread1_Sheet1.Columns.Get(5).Label = "태";
this.fpSpread1_Sheet1.Columns.Get(6).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(6).CellType = textCellType7;
this.fpSpread1_Sheet1.Columns.Get(6).DataField = "process";
this.fpSpread1_Sheet1.Columns.Get(6).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(6).Label = "업무분류";
this.fpSpread1_Sheet1.Columns.Get(6).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(6).Width = 80F;
this.fpSpread1_Sheet1.Columns.Get(6).DataField = "type";
this.fpSpread1_Sheet1.Columns.Get(6).Label = "업무형태";
this.fpSpread1_Sheet1.Columns.Get(6).Width = 84F;
this.fpSpread1_Sheet1.Columns.Get(7).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(7).CellType = textCellType8;
this.fpSpread1_Sheet1.Columns.Get(7).DataField = "projectName";
this.fpSpread1_Sheet1.Columns.Get(7).Label = "프로젝트(아이템)";
this.fpSpread1_Sheet1.Columns.Get(7).Width = 158F;
this.fpSpread1_Sheet1.Columns.Get(8).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.fpSpread1_Sheet1.Columns.Get(7).DataField = "process";
this.fpSpread1_Sheet1.Columns.Get(7).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(7).Label = "업무분류";
this.fpSpread1_Sheet1.Columns.Get(7).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(7).Width = 80F;
this.fpSpread1_Sheet1.Columns.Get(8).AllowAutoFilter = true;
this.fpSpread1_Sheet1.Columns.Get(8).CellType = textCellType9;
this.fpSpread1_Sheet1.Columns.Get(8).DataField = "projectName";
this.fpSpread1_Sheet1.Columns.Get(8).Label = "프로젝트(아이템)";
this.fpSpread1_Sheet1.Columns.Get(8).Width = 158F;
this.fpSpread1_Sheet1.Columns.Get(9).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
numberCellType1.DecimalPlaces = 0;
numberCellType1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.Yes;
numberCellType1.MaximumValue = 2147483647D;
numberCellType1.MinimumValue = -2147483648D;
this.fpSpread1_Sheet1.Columns.Get(8).CellType = numberCellType1;
this.fpSpread1_Sheet1.Columns.Get(8).DataField = "pidx";
this.fpSpread1_Sheet1.Columns.Get(8).Label = "*";
this.fpSpread1_Sheet1.Columns.Get(8).Tag = "pidx";
this.fpSpread1_Sheet1.Columns.Get(8).Width = 39F;
this.fpSpread1_Sheet1.Columns.Get(9).CellType = numberCellType1;
this.fpSpread1_Sheet1.Columns.Get(9).DataField = "pidx";
this.fpSpread1_Sheet1.Columns.Get(9).Label = "*";
this.fpSpread1_Sheet1.Columns.Get(9).Tag = "pidx";
this.fpSpread1_Sheet1.Columns.Get(9).Width = 39F;
numberCellType2.MaximumValue = 999999999999999D;
numberCellType2.MinimumValue = -999999999999999D;
this.fpSpread1_Sheet1.Columns.Get(9).CellType = numberCellType2;
this.fpSpread1_Sheet1.Columns.Get(9).DataField = "hrs";
this.fpSpread1_Sheet1.Columns.Get(9).Label = "시간";
this.fpSpread1_Sheet1.Columns.Get(9).Width = 52F;
this.fpSpread1_Sheet1.Columns.Get(10).CellType = numberCellType2;
this.fpSpread1_Sheet1.Columns.Get(10).DataField = "hrs";
this.fpSpread1_Sheet1.Columns.Get(10).Label = "시간";
this.fpSpread1_Sheet1.Columns.Get(10).Width = 52F;
numberCellType3.MaximumValue = 999999999999999D;
numberCellType3.MinimumValue = -999999999999999D;
this.fpSpread1_Sheet1.Columns.Get(10).CellType = numberCellType3;
this.fpSpread1_Sheet1.Columns.Get(10).DataField = "ot";
this.fpSpread1_Sheet1.Columns.Get(10).ForeColor = System.Drawing.Color.Red;
this.fpSpread1_Sheet1.Columns.Get(10).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(10).Label = "초과";
this.fpSpread1_Sheet1.Columns.Get(10).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(11).CellType = textCellType9;
this.fpSpread1_Sheet1.Columns.Get(11).DataField = "description";
this.fpSpread1_Sheet1.Columns.Get(11).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(11).Label = "비고";
this.fpSpread1_Sheet1.Columns.Get(11).CellType = numberCellType3;
this.fpSpread1_Sheet1.Columns.Get(11).DataField = "ot";
this.fpSpread1_Sheet1.Columns.Get(11).ForeColor = System.Drawing.Color.Red;
this.fpSpread1_Sheet1.Columns.Get(11).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(11).Label = "초과";
this.fpSpread1_Sheet1.Columns.Get(11).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(11).Width = 113F;
this.fpSpread1_Sheet1.Columns.Get(12).CellType = textCellType10;
this.fpSpread1_Sheet1.Columns.Get(12).DataField = "description";
this.fpSpread1_Sheet1.Columns.Get(12).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(12).Label = "비고";
this.fpSpread1_Sheet1.Columns.Get(12).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(12).Width = 113F;
this.fpSpread1_Sheet1.DataAutoSizeColumns = false;
this.fpSpread1_Sheet1.DataSource = this.bs;
this.fpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = false;
@@ -595,7 +614,7 @@
this.toolStripButton2});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1142, 37);
this.toolStrip1.Size = new System.Drawing.Size(1240, 37);
this.toolStrip1.TabIndex = 4;
this.toolStrip1.Text = "toolStrip1";
//
@@ -694,10 +713,10 @@
this.richTextBox1.BackColor = System.Drawing.Color.Gainsboro;
this.richTextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "description", true));
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.richTextBox1.Location = new System.Drawing.Point(0, 504);
this.richTextBox1.Location = new System.Drawing.Point(0, 547);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.ReadOnly = true;
this.richTextBox1.Size = new System.Drawing.Size(1142, 60);
this.richTextBox1.Size = new System.Drawing.Size(1240, 60);
this.richTextBox1.TabIndex = 5;
this.richTextBox1.Text = "";
//
@@ -705,7 +724,7 @@
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1142, 589);
this.ClientSize = new System.Drawing.Size(1240, 632);
this.Controls.Add(this.fpSpread1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.toolStrip1);
@@ -784,9 +803,10 @@
private System.Windows.Forms.ToolStripButton btReportDay;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripButton toolStripButton2;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
private System.Windows.Forms.ToolStripLabel toolStripLabel1;
private System.Windows.Forms.ToolStripComboBox cmbProcess;
private System.Windows.Forms.RichTextBox richTextBox1;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
private System.Windows.Forms.ToolStripButton toolStripButton3;
}
}

View File

@@ -32,10 +32,11 @@ namespace FPJ0000
Boolean binit = false;
void UpdateUserList()
void UpdateUserList()
{
//담당자목록 - 사용자목록으로 처리한다.
this.cmbUser.Items.Clear();
this.cmbUser.Items.Add("-- 전체 --");
var taUserList = new dsReportTableAdapters.ProcessUserListTableAdapter();
var processStr = "%";
@@ -46,7 +47,7 @@ namespace FPJ0000
string cmbdata = string.Format("{1}({0})", dr.id, dr.name);
this.cmbUser.Items.Add(cmbdata);
}
}
private void __Load(object sender, EventArgs e)
{
@@ -69,12 +70,12 @@ namespace FPJ0000
//담당자목록 - 사용자목록으로 처리한다.
string namestr = string.Format("{0}({1})", FCOMMON.info.Login.nameK, FCOMMON.info.Login.no);
// if (FCOMMON.info.Login.no == "dev") namestr = "김치균(395552)";
// this.cmbUser.Items.Add(namestr);
// if (FCOMMON.info.Login.no == "dev") namestr = "김치균(395552)";
// this.cmbUser.Items.Add(namestr);
UpdateUserList(); //현재사용자의 이름을 반환한다
cmbUser.Text = namestr;
if(cmbUser.SelectedIndex < 0)
if (cmbUser.SelectedIndex < 0)
{
//내 아이템이 없다면, 목록을 추가해서 선택해줘야 한다
this.cmbUser.Items.Add(namestr);
@@ -117,7 +118,7 @@ namespace FPJ0000
foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns)
col.Locked = true;
}
refreshData();
binit = true;
@@ -191,8 +192,8 @@ namespace FPJ0000
void refreshData()
{
// string state = "%";
// if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0].Substring(1);
// string state = "%";
// if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0].Substring(1);
//사용자번호추적
if (cmbUser.Text.Trim() == "")
@@ -200,7 +201,7 @@ namespace FPJ0000
FCOMMON.Util.MsgE("담당자가 선택되지 않았습니다.");
return;
}
if (cmbUser.Text.IndexOf("(") == -1 || cmbUser.Text.IndexOf(")") == -1)
if (cmbUser.SelectedIndex > 0 && ( cmbUser.Text.IndexOf("(") == -1 || cmbUser.Text.IndexOf(")") == -1))
{
FCOMMON.Util.MsgE("담당자 번호를 확인할 수 없습니다.(문의 T.8567)");
return;
@@ -208,7 +209,9 @@ namespace FPJ0000
string request = cmbUser.Text.Substring(cmbUser.Text.LastIndexOf('(') + 1);
request = request.Substring(0, request.Length - 1);
this.ta.Fill(this.dsMSSQL.JobReport, dtSD.Text, dtED.Text, request,FCOMMON.info.Login.gcode);
if (cmbUser.SelectedIndex == 0) request = "%"; //전체검색 201028 - chi(임현대)
this.ta.Fill(this.dsMSSQL.JobReport, dtSD.Text, dtED.Text, request, FCOMMON.info.Login.gcode);
RefreshTime();
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
FormattingData();
@@ -366,7 +369,7 @@ namespace FPJ0000
{
if (filter != "") filter += " or ";
filter += col + " like ?";
}
}
filter = filter.Replace("?", "'%" + search + "%'");
this.bs.Filter = filter;
tbFind.BackColor = Color.Lime;
@@ -396,7 +399,7 @@ namespace FPJ0000
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.JobReportRow;
if(dr.uid != FCOMMON.info.Login.no && FCOMMON.info.Login.level<5)
if (dr.uid != FCOMMON.info.Login.no && FCOMMON.info.Login.level < 5)
{
FCOMMON.Util.MsgE("타인의 자료는 추가/변경/삭제 할 수 없습니다.");
return;
@@ -554,6 +557,10 @@ namespace FPJ0000
this.Close();
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
var f = new JobReport.rJobReportUser();
f.Show();
}
}
}

View File

@@ -244,6 +244,17 @@
hB/a9r+CVAG4Auj5g7iA5/1NACaptgIVLHkb0wWVw13ZL60p2+uerqkCJs1mMgwUU6d1k/xJwI10RZj1
9TPUN7Wam9dgTMC75QR7TjCBkRQs5Jd1jQS8c1ewtZLTPcQW/peADpC44cudgnjZOQ1OCGjTwkwaGBon
GoSrpcVIQqmAj6LZftFBup9vWiUlUQdIDCbsQrsGZRJKBbOXyA++SlEsu6QjvQAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVDhPnZIxS8NQFEb7W/wLjh0Fl9a1SxBHBekkWFd1
qYg4Ci5dndSCg2AHl4LQSaRSKDqoFUE7VAjUmvTKueWmL2mw2gunL7zmO+/mJhmZoTJusdF868vpXUfO
b5/lpPEox9f3SvnsRtk8uojxHQ7HEgSEkXS6vrz3xqtdu+xdfUiheEBsJOGCk/mz/hROUHsIIrp+qIKY
hB/a9r+CVAG4Auj5g7iA5/1NACaptgIVLHkb0wWVw13ZL60p2+uerqkCJs1mMgwUU6d1k/xJwI10RZj1
9TPUN7Wam9dgTMC75QR7TjCBkRQs5Jd1jQS8c1ewtZLTPcQW/peADpC44cudgnjZOQ1OCGjTwkwaGBon
GoSrpcVIQqmAj6LZftFBup9vWiUlUQdIDCbsQrsGZRJKBbOXyA++SlEsu6QjvQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -256,7 +256,6 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
@@ -295,7 +294,6 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
@@ -334,7 +332,6 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
@@ -636,7 +633,7 @@
</SortExpressions>
<Top>13.29972cm</Top>
<Height>1.2cm</Height>
<Width>19.01255cm</Width>
<Width>19.01256cm</Width>
<Style>
<Border>
<Style>None</Style>
@@ -653,12 +650,12 @@
<GroupExpression>=Fields!type.Value</GroupExpression>
</GroupExpressions>
</Group>
<Label>=Fields!projectName.Value</Label>
<SortExpressions>
<SortExpression>
<Value>=Fields!projectName.Value</Value>
</SortExpression>
</SortExpressions>
<Label>=Fields!projectName.Value</Label>
</ChartMember>
</ChartMembers>
</ChartCategoryHierarchy>
@@ -693,6 +690,7 @@
</ChartDataPoint>
</ChartDataPoints>
<Type>Shape</Type>
<Subtype>Doughnut</Subtype>
<Style />
<ChartEmptyPoints>
<Style />
@@ -703,10 +701,13 @@
<Style />
</ChartDataLabel>
</ChartEmptyPoints>
<LegendName>Default</LegendName>
<ValueAxisName>Primary</ValueAxisName>
<CategoryAxisName>Primary</CategoryAxisName>
<ChartSmartLabel>
<CalloutLineColor>Black</CalloutLineColor>
<ShowOverlapped>true</ShowOverlapped>
<MarkerOverlapping>true</MarkerOverlapping>
<MinMovingDistance>0pt</MinMovingDistance>
</ChartSmartLabel>
</ChartSeries>

View File

@@ -0,0 +1,220 @@
namespace FPJ0000.JobReport
{
partial class rJobReportUser
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.dsReport = new FPJ0000.dsReport();
this.panel1 = new System.Windows.Forms.Panel();
this.cmbUser = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.dte = new System.Windows.Forms.DateTimePicker();
this.label2 = new System.Windows.Forms.Label();
this.dts = new System.Windows.Forms.DateTimePicker();
this.tbProcess = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.btRefresh = new System.Windows.Forms.Button();
this.ta = new FPJ0000.dsReportTableAdapters.JobReportDayTableAdapter();
this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dsReport)).BeginInit();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit();
this.SuspendLayout();
//
// bs
//
this.bs.DataMember = "JobReportDay";
this.bs.DataSource = this.dsReport;
//
// dsReport
//
this.dsReport.DataSetName = "dsReport";
this.dsReport.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// panel1
//
this.panel1.Controls.Add(this.cmbUser);
this.panel1.Controls.Add(this.label4);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.dte);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.dts);
this.panel1.Controls.Add(this.tbProcess);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.btRefresh);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(1058, 58);
this.panel1.TabIndex = 0;
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
//
// cmbUser
//
this.cmbUser.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbUser.FormattingEnabled = true;
this.cmbUser.Location = new System.Drawing.Point(289, 32);
this.cmbUser.Name = "cmbUser";
this.cmbUser.Size = new System.Drawing.Size(180, 20);
this.cmbUser.TabIndex = 11;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(254, 36);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(29, 12);
this.label4.TabIndex = 10;
this.label4.Text = "사원";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(261, 12);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(14, 12);
this.label3.TabIndex = 9;
this.label3.Text = "~";
//
// dte
//
this.dte.Location = new System.Drawing.Point(289, 8);
this.dte.Name = "dte";
this.dte.Size = new System.Drawing.Size(180, 21);
this.dte.TabIndex = 8;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 12);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 12);
this.label2.TabIndex = 7;
this.label2.Text = "검색기간";
//
// dts
//
this.dts.Location = new System.Drawing.Point(68, 8);
this.dts.Name = "dts";
this.dts.Size = new System.Drawing.Size(180, 21);
this.dts.TabIndex = 6;
//
// tbProcess
//
this.tbProcess.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.tbProcess.FormattingEnabled = true;
this.tbProcess.Location = new System.Drawing.Point(68, 32);
this.tbProcess.Name = "tbProcess";
this.tbProcess.Size = new System.Drawing.Size(180, 20);
this.tbProcess.TabIndex = 5;
this.tbProcess.SelectedIndexChanged += new System.EventHandler(this.tbProcess_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(34, 36);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 3;
this.label1.Text = "공정";
//
// btRefresh
//
this.btRefresh.Dock = System.Windows.Forms.DockStyle.Right;
this.btRefresh.Location = new System.Drawing.Point(978, 5);
this.btRefresh.Name = "btRefresh";
this.btRefresh.Size = new System.Drawing.Size(75, 48);
this.btRefresh.TabIndex = 2;
this.btRefresh.Text = "새로고침";
this.btRefresh.UseVisualStyleBackColor = true;
this.btRefresh.Click += new System.EventHandler(this.button1_Click);
//
// ta
//
this.ta.ClearBeforeFill = true;
//
// fpSpread1
//
this.fpSpread1.AccessibleDescription = "";
this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill;
this.fpSpread1.Location = new System.Drawing.Point(0, 58);
this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(1058, 511);
this.fpSpread1.TabIndex = 3;
//
// fpSpread1_Sheet1
//
this.fpSpread1_Sheet1.Reset();
this.fpSpread1_Sheet1.SheetName = "Sheet1";
//
// rJobReportUser
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1058, 569);
this.Controls.Add(this.fpSpread1);
this.Controls.Add(this.panel1);
this.Name = "rJobReportUser";
this.Text = "적정인원 분석 보고서";
this.Load += new System.EventHandler(this.rJobReport_Load);
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dsReport)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private dsReport dsReport;
private System.Windows.Forms.BindingSource bs;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button btRefresh;
private dsReportTableAdapters.JobReportDayTableAdapter ta;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox tbProcess;
private System.Windows.Forms.DateTimePicker dts;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.DateTimePicker dte;
private System.Windows.Forms.ComboBox cmbUser;
private System.Windows.Forms.Label label4;
private FarPoint.Win.Spread.FpSpread fpSpread1;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
}
}

View File

@@ -0,0 +1,457 @@
using FarPoint.Win;
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;
namespace FPJ0000.JobReport
{
public partial class rJobReportUser : Form
{
Boolean binit = false;
public rJobReportUser()
{
InitializeComponent();
this.WindowState = FormWindowState.Maximized;
this.dts.Value = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01"));
this.dte.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1);
}
private void rJobReport_Load(object sender, EventArgs e)
{
this.tbProcess.Items.Clear();
tbProcess.Items.Add("--전체--");
var taProcess = new dsReportTableAdapters.ProcessListTableAdapter();
var dtProcessList = taProcess.GetData(FCOMMON.info.Login.gcode);
foreach (dsReport.ProcessListRow dr in dtProcessList.Rows)
tbProcess.Items.Add(dr.processs);
//사용자의 공정명을 선택해준다
this.tbProcess.Text = FCOMMON.info.Login.process;
//프로세스가 선택되지 않았다면 전체를 선택해준다.
if (tbProcess.SelectedIndex < 0) tbProcess.SelectedIndex = 0;
//사용자 목록을 선택한다
UpdateUserList();
//엑셀파일불러오기
var file = FCOMMON.Util.CurrentPath + "ReportForUser.xlsx";
this.fpSpread1.OpenExcel(file);
if (this.fpSpread1.Sheets.Count > 1) this.fpSpread1.ActiveSheetIndex = 0;
//refrehData();
binit = true;
}
void UpdateUserList()
{
var db = new EEEntities();
cmbUser.Items.Clear();
cmbUser.Items.Add("--전체--");
//일반사용자 목록 가져온다
IQueryable<IGrouping<String, vJobReportForUser>> userlist;
if (tbProcess.SelectedIndex <= 0)
{
//공정구분없이 전체사용자를 가져온다
userlist = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t => t.name).GroupBy(t => t.name);
}
else
{
userlist = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.userProcess == tbProcess.Text).OrderBy(t => t.name).GroupBy(t => t.name);
}
//if (tbProcess.SelectedIndex != 0) userlist = userlist.Where(t => t.processs == tbProcess.Text); //해당 공정의 인원만 처리한다
foreach (var item in userlist)
{
var dr = item.First();
cmbUser.Items.Add(String.Format("[{0}] {1}", dr.id, dr.name));
}
if (tbProcess.SelectedIndex > 0)
cmbUser.Text = string.Format("[{0}] {1}", FCOMMON.info.Login.no, FCOMMON.info.Login.nameK);
if (cmbUser.SelectedIndex < 0) cmbUser.SelectedIndex = 0; //기본전체로 선택해준다.
}
void refrehData()
{
var db = new EEEntities();
//조회공정
this.fpSpread1.Sheets[0].Cells[3, 2].Value = tbProcess.Text;
//담당자
this.fpSpread1.Sheets[0].Cells[3, 3].Value = cmbUser.Text;
//시작일:F4
this.fpSpread1.Sheets[0].Cells[3, 5].Value = dts.Value;
//종료일:G4
this.fpSpread1.Sheets[0].Cells[3, 6].Value = dte.Value;
//근문일수,시간
var vSD = dts.Value.ToShortDateString();
var vED = dte.Value.ToShortDateString();
//휴가일수확인
var drDays = db.HolidayLIst.Where(t => t.free == false && t.pdate.CompareTo(vSD) >= 0 && t.pdate.CompareTo(vED) <= 0);
//근무일수적용
if (drDays == null || drDays.Count() < 1) this.fpSpread1.Sheets[0].Cells[3, 7].Value = 0;
else this.fpSpread1.Sheets[0].Cells[3, 7].Value = drDays.Count();
ComplexBorderSide left = new ComplexBorderSide(Color.Gray, 1);
ComplexBorderSide top = new ComplexBorderSide(Color.Gray, 1);
ComplexBorderSide right = new ComplexBorderSide(Color.Gray, 1);
ComplexBorderSide bottom = new ComplexBorderSide(Color.Gray, 1);
//사용자목록을 가져온다
List<vJobReportForUser> baseData;
if (cmbUser.SelectedIndex > 0)
{
//사용자번호
var UserNo = cmbUser.Text.Substring(1, cmbUser.Text.IndexOf(']') - 1);
baseData = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.id == UserNo).OrderBy(t => t.name).ToList();
}
else if (tbProcess.SelectedIndex > 0)
{
baseData = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.userProcess == tbProcess.Text).OrderBy(t => t.name).ToList();
}
else
{
baseData = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t => t.name).ToList();
}
//사용자로 그룹해서 수량을 세명 , 사용자 숫자가 된다.
this.fpSpread1.Sheets[0].Cells[3, 9].Value = baseData.GroupBy(t => t.id).Count(); //인원수
var col = 0;
var row = 0;
//해당 그룹의 기간데이터를 가져온다
if (cmbUser.SelectedIndex > 0)
{
//사용자번호
var UserNo = cmbUser.Text.Substring(1, cmbUser.Text.IndexOf(']') - 1);
baseData = db.vJobReportForUser
.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.id == UserNo && t.pdate.CompareTo(vSD) >= 0 && t.pdate.CompareTo(vED) <= 0)
.OrderBy(t => t.name)
.OrderBy(t => t.pdate)
.ToList();
}
else if (tbProcess.SelectedIndex > 0)
{
baseData = db.vJobReportForUser
.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(vSD) >= 0 && t.pdate.CompareTo(vED) <= 0 && t.userProcess == tbProcess.Text)
.OrderBy(t => t.name)
.OrderBy(t => t.pdate)
.ToList();
}
else
{
baseData = db.vJobReportForUser
.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(vSD) >= 0 && t.pdate.CompareTo(vED) <= 0)
.OrderBy(t => t.name)
.OrderBy(t => t.pdate)
.ToList();
}
col = 0;
row = 1;
fpSpread1.Sheets[1].RowCount = baseData.GroupBy(t => t.id).Count() + 1;
foreach (var item in baseData.GroupBy(t => t.id)) //사용자별로 그룹을 해서
{
var dr = item.FirstOrDefault();
this.fpSpread1.Sheets[1].Cells[row, 0].Value = dr.name;
this.fpSpread1.Sheets[1].Cells[row, 1].Value = dr.id;
this.fpSpread1.Sheets[1].Cells[row, 2].Value = item.Sum(t => t.hrs);
this.fpSpread1.Sheets[1].Cells[row, 3].Value = item.Sum(t => t.ot);
row += 1;
}
fpSpread1.Sheets[1].ColumnCount = 5;
fpSpread1.Sheets[1].RowCount = row + 1;
//Raw dat a표시
row = 1;
this.fpSpread1.Sheets[2].RowCount = baseData.Count + 1;
foreach (var item in baseData)
{
col = 0;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.id;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.name;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.pdate;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.userProcess;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.process;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.svalue;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.hrs;
this.fpSpread1.Sheets[2].Cells[row, col++].Value = item.ot;
row += 1;
}
// var dtRaw = db.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(vSD) >= 0 && t.pdate.CompareTo(vED) <= 0);
//인원분석보고용타입설1
col = 2;
var orTypeName = baseData.Where(t => t.svalue != "휴가").OrderBy(t => t.svalue).GroupBy(t => t.svalue);
this.fpSpread1.ActiveSheetIndex = 0;
foreach (var item in orTypeName)
{
var dr = item.FirstOrDefault();
this.fpSpread1.Sheets[0].Cells[6, col++].Value = dr.svalue;
//col += 1;
}
for (int i = col; i <= 6; i++)
this.fpSpread1.Sheets[0].Cells[6, i].Value = "*";
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("ko-KR", false);
FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType();
numberCellType1.NegativeRed = true;
numberCellType1.NullDisplay = "--";
//프로세스목록을 먼저 기록한다
row = 7;
this.fpSpread1.Sheets[0].RowCount = 101;
var orProcess = baseData.OrderBy(t => t.process).GroupBy(t => t.process);
foreach (var item in orProcess)
{
var processName = item.FirstOrDefault().process;
this.fpSpread1.Sheets[0].Cells[row, 1].Value = processName;
//2번부터는 데이터를 넣어야 한다
double sumOt = 0.0;
double holytime = 0.0;
int coldata = 2;
for (int i = 2; i <= 6; i++)
{
var colName = fpSpread1.Sheets[0].Cells[6, i].Value.ToString();
//이 이름에 해당하는 데이터의 시간을 가져온다
double ot = 0.0;
double hrs = 0.0;
if (colName != "*")
{
//double holytime = 0.0;
var timeList = item.Where(t => t.svalue == colName);
if (timeList != null)
{
hrs = (double)timeList.Sum(t => t.hrs);
ot = (double)timeList.Sum(t => t.ot);
sumOt += ot;
}
}
if (ot + hrs == 0.0) fpSpread1.Sheets[0].Cells[row, coldata].Value = null;
else fpSpread1.Sheets[0].Cells[row, coldata].Value = ot + hrs; //없음으로한다
coldata += 1;
}
fpSpread1.Sheets[0].Cells[row, 7].CellType = numberCellType1;
fpSpread1.Sheets[0].Cells[row, 7].ParseFormatString = "N1";
fpSpread1.Sheets[0].Cells[row, 8].CellType = numberCellType1;
fpSpread1.Sheets[0].Cells[row, 8].ParseFormatString = "N1";
fpSpread1.Sheets[0].Cells[row, 7].Formula = string.Format("SUM(C{0}:G{0})+K{0}", row + 1);
fpSpread1.Sheets[0].Cells[row, 8].Formula = string.Format("H{0}/$I$4", row + 1);
//H8 /$I$4
if(sumOt == 0.0) fpSpread1.Sheets[0].Cells[row, 9].Value = null; //OT합계
else fpSpread1.Sheets[0].Cells[row, 9].Value = sumOt ; //OT합계
// process 의 휴가시간을 다시 계산한다.
var = baseData.Where(t => t.process == processName && t.svalue == "휴가");
if ( == null || .Count() < 1)
{
fpSpread1.Sheets[0].Cells[row, 10].Value = null;// 0.0; //휴가시간
}
else fpSpread1.Sheets[0].Cells[row, 10].Value = .Sum(t => t.hrs); //휴가시간
for (int i = 1; i <= 10; i++)
{
fpSpread1.Sheets[0].Cells[row, i].BackColor = Color.White;
fpSpread1.Sheets[0].Cells[row, i].Border = new ComplexBorder(left, top, right, bottom);
fpSpread1.Sheets[0].Cells[row, i].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
fpSpread1.Sheets[0].Cells[row, i].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
}
row += 1;
}
//합계데이터
fpSpread1.Sheets[0].Cells[row, 1].Value = "합계";
fpSpread1.Sheets[0].Cells[row, 1].BackColor = Color.LightGray;
fpSpread1.Sheets[0].Cells[row, 1].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
fpSpread1.Sheets[0].Cells[row, 1].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
fpSpread1.Sheets[0].Cells[row, 1].Border = new ComplexBorder(left, top, right, bottom);
for (int i = 2; i < 11; i++)
{
char basec = 'C';
char newc = (char)(basec + (i - 2));
fpSpread1.Sheets[0].Cells[row, i].Formula = "SUM(" + newc.ToString() + "8:" + newc.ToString() + row.ToString() + ")";
fpSpread1.Sheets[0].Cells[row, i].BackColor = Color.LightGray;
fpSpread1.Sheets[0].Cells[row, i].CellType = numberCellType1;
fpSpread1.Sheets[0].Cells[row, i].ParseFormatString = "N1";
fpSpread1.Sheets[0].Cells[row, i].CellType = numberCellType1;
fpSpread1.Sheets[0].Cells[row, i].ParseFormatString = "N1";
fpSpread1.Sheets[0].Cells[row, i].Border = new ComplexBorder(left, top, right, bottom);
fpSpread1.Sheets[0].Cells[row, i].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
fpSpread1.Sheets[0].Cells[row, i].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
}
this.fpSpread1.Sheets[0].RowCount = row + 1;
// this.ta.Fill(this.dsReport.JobReportDay, tbMon.Text, FCOMMON.info.Login.gcode);
// //this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
// //this.reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
// //this.reportViewer1.RefreshReport();
// //그리드뷰 생성
// this.dataGridView1.Rows.Clear();
// this.dataGridView1.Columns.Clear();
// var Process = tbProcess.Text.Trim();
// if (Process == "%" || tbProcess.SelectedIndex == 0) Process = "";
// var wekklist = new string[] { "일","월","화","수","목","금","토" };
// //날짜에 해당하는 열을 먼저 생성한다
// dataGridView1.Columns.Add("dvcu_damdang", "사원명");
//// dataGridView1.Columns.Add("dvcu_process", "공정");
// var daylist = dsReport.JobReportDay.OrderBy(t=>t.pdate).GroupBy(t => t.pdate);
// foreach (var dayitem in daylist)
// {
// var dtValue = DateTime.Parse(dayitem.Key);
// if(dtValue.DayOfWeek == DayOfWeek.Saturday || dtValue.DayOfWeek == DayOfWeek.Sunday)
// {
// var week = wekklist[(int)dtValue.DayOfWeek];
// this.dataGridView1.Columns.Add("dvcu_pdate", dayitem.Key.Substring(8, 2) + "(" + week.ToString() + ")");
// }
// else
// {
// this.dataGridView1.Columns.Add("dvcu_pdate", dayitem.Key.Substring(8, 2) );
// }
// this.dataGridView1.Columns[this.dataGridView1.Columns.Count -1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
// }
// dataGridView1.Columns.Add("dvcu_sum", "합계");
// this.dataGridView1.Columns[this.dataGridView1.Columns.Count - 1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
// foreach (var item in dsReport.JobReportDay.Where(t=>t.processs.Contains(Process)).OrderBy(t => t.uname + t.uid).GroupBy(t => t.uname))
// {
// //사용자별로 데이터를 가져온다.
// var username = item.Key;
// var userid = item.FirstOrDefault().uid;
// List<string> rowdata = new List<string>();
// rowdata.Add(username);
// // rowdata.Add(item.FirstOrDefault().processs);
// //이 사용자의 데이터를 날짜별로 정렬해서 가져온다.
// var sum = 0.0;
// var sumOT = 0.0;
// for (int i = 1; i < this.dataGridView1.Columns.Count-1; i++)
// {
// var col = this.dataGridView1.Columns[i];
// var dayStr = col.HeaderText.Substring(0, 2);
// var daydata = dsReport.JobReportDay.Where(t => t.uid == userid && t.pdate.EndsWith(dayStr)).FirstOrDefault();
// if (daydata != null)
// {
// sum += daydata.hrs;
// sumOT += daydata.ot;
// rowdata.Add((daydata.hrs.ToString() + "+" + daydata.ot.ToString()));
// }
// else rowdata.Add("--");
// }
// rowdata.Add(sum.ToString() + "+" + sumOT.ToString());
// this.dataGridView1.Rows.Add(rowdata.ToArray());
// }
// foreach(DataGridViewRow dvrow in this.dataGridView1.Rows)
// {
// for(int i = 1;i < this.dataGridView1.ColumnCount-1;i++)
// {
// var cellvalue = "--";
// if(dvrow.Cells[i].Value != null) cellvalue= dvrow.Cells[i].Value.ToString();
// if (cellvalue == "--") dvrow.Cells[i].Style.ForeColor = Color.Gray;
// else
// {
// var datasplbu = cellvalue.Split('+');
// double hrs;
// double ot;
// if (double.TryParse(datasplbu[1], out ot) == false) ot = 0;
// if(double.TryParse(datasplbu[0],out hrs))
// {
// if (hrs > 8.0) dvrow.Cells[i].Style.ForeColor = Color.Blue;
// else if (hrs < 8.0) dvrow.Cells[i].Style.ForeColor = Color.Red;
// else
// {
// if (ot == 0)
// dvrow.Cells[i].Style.ForeColor = Color.Black;
// else
// dvrow.Cells[i].Style.ForeColor = Color.Magenta;
// }
// }
// else
// {
// FCOMMON.Util.MsgE("숫자변경실패 " + cellvalue);
// dvrow.Cells[i].Style.ForeColor = Color.Red;
// }
// }
// }
// }
// this.dataGridView1.AutoResizeColumns();
}
private void button1_Click(object sender, EventArgs e)
{
refrehData();
}
private void tbProcess_SelectedIndexChanged(object sender, EventArgs e)
{
if (binit == false) return;
UpdateUserList();
//if (tbProcess.SelectedIndex >= 0) refrehData();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
}
}

View File

@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>119, 17</value>
</metadata>
<metadata name="dsReport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="dsReport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>183, 17</value>
</metadata>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>245, 17</value>
</metadata>
</root>