챔피언

This commit is contained in:
chi
2023-05-30 11:03:12 +09:00
parent a74a47b582
commit 0da45cf931
32 changed files with 23256 additions and 1684 deletions

View File

@@ -13,7 +13,7 @@ namespace JobReportMailService
public partial class fChildBase : Form
{
protected Boolean taskrun = true;
protected DateTime LastUpdateTime;
protected DateTime ChkMakeSchDayWeekTime;
protected DateTime ConsoleTime;
protected Task task = null;
protected int Delaytime = 60000;
@@ -22,8 +22,8 @@ namespace JobReportMailService
public fChildBase()
{
InitializeComponent();
LastUpdateTime = DateTime.Now.AddDays(-1);
ConsoleTime = LastUpdateTime;
ChkMakeSchDayWeekTime = DateTime.Now.AddDays(-1);
ConsoleTime = ChkMakeSchDayWeekTime;
}
private void fChildBase_Load(object sender, EventArgs e)

View File

@@ -31,7 +31,7 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMinutes <= 15)
{
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
@@ -61,7 +61,7 @@ namespace JobReportMailService
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();
@@ -425,7 +425,7 @@ namespace JobReportMailService
{
taskwait = !taskwait;
if (taskwait == false)
LastUpdateTime = DateTime.Now.AddHours(-1);
ChkMakeSchDayWeekTime = DateTime.Now.AddHours(-1);
}
private void timer1_Tick(object sender, EventArgs e)

View File

@@ -30,7 +30,7 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMinutes <= 15)
{
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
@@ -58,7 +58,7 @@ namespace JobReportMailService
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();

View File

@@ -31,7 +31,7 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMinutes <= 15)
{
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
@@ -59,7 +59,7 @@ namespace JobReportMailService
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();

View File

@@ -31,7 +31,7 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMinutes <= 15)
{
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
@@ -60,7 +60,7 @@ namespace JobReportMailService
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();

View File

@@ -31,7 +31,7 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMinutes <= 15)
{
if ((DateTime.Now - ConsoleTime).TotalHours >= 1.0)
@@ -59,7 +59,7 @@ namespace JobReportMailService
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();

View File

@@ -31,14 +31,14 @@ namespace JobReportMailService
continue;
}
var ts = DateTime.Now - LastUpdateTime;
var ts = DateTime.Now - ChkMakeSchDayWeekTime;
if (ts.TotalMilliseconds <= 1000)
{
continue;
}
else
{
LastUpdateTime = DateTime.Now;
ChkMakeSchDayWeekTime = DateTime.Now;
try
{
RunData();
@@ -250,7 +250,7 @@ namespace JobReportMailService
{
taskwait = !taskwait;
if (taskwait == false)
LastUpdateTime = DateTime.Now.AddHours(-1);
ChkMakeSchDayWeekTime = DateTime.Now.AddHours(-1);
}
private void timer1_Tick(object sender, EventArgs e)

14786
Project/DSMail.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

9
Project/DSMail.xsc Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

1584
Project/DSMail.xsd Normal file

File diff suppressed because it is too large Load Diff

22
Project/DSMail.xss Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="16" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:MailForm" ZOrder="11" X="222" Y="158" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:MailData" ZOrder="10" X="456" Y="157" Height="305" Width="197" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:MailAuto" ZOrder="9" X="711" Y="160" Height="305" Width="199" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:vMailingProjectSchedule" ZOrder="8" X="204" Y="490" Height="305" Width="289" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectsIngList" ZOrder="7" X="514" Y="488" Height="305" Width="191" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="237" />
<Shape ID="DesignTable:EETGW_ProjectsSchedule" ZOrder="6" X="769" Y="496" Height="96" Width="291" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:vJobReportForUser" ZOrder="3" X="1206" Y="86" Height="229" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:JobReport" ZOrder="1" X="927" Y="84" Height="400" Width="318" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="332" />
<Shape ID="DesignTable:HolidayLIst" ZOrder="5" X="823" Y="620" Height="191" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:vGroupUser" ZOrder="2" X="1159" Y="468" Height="324" Width="230" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:JobReportDateList" ZOrder="4" X="359" Y="85" Height="96" Width="212" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -313,6 +313,11 @@
<Compile Include="Dialog\fTouchKeyFull.Designer.cs">
<DependentUpon>fTouchKeyFull.cs</DependentUpon>
</Compile>
<Compile Include="DSMail.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSMail.xsd</DependentUpon>
</Compile>
<Compile Include="dsMSSQL.cs">
<DependentUpon>dsMSSQL.xsd</DependentUpon>
</Compile>
@@ -456,6 +461,10 @@
</Compile>
<Compile Include="Settings.cs" />
<Compile Include="SqlServerTypes\Loader.cs" />
<Compile Include="StateMachine\ReportUserData.cs" />
<Compile Include="StateMachine\_MailService.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UserGroup.cs">
<DependentUpon>AdoNetEFMain.tt</DependentUpon>
</Compile>
@@ -619,6 +628,17 @@
<None Include="DataSet1.xss">
<DependentUpon>DataSet1.xsd</DependentUpon>
</None>
<None Include="DSMail.xsc">
<DependentUpon>DSMail.xsd</DependentUpon>
</None>
<None Include="DSMail.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSMail.Designer.cs</LastGenOutput>
</None>
<None Include="DSMail.xss">
<DependentUpon>DSMail.xsd</DependentUpon>
</None>
<None Include="dsMSSQL.xsc">
<DependentUpon>dsMSSQL.xsd</DependentUpon>
</None>

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
// 지정되도록 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("23.05.15.1130")]
[assembly: AssemblyFileVersion("23.05.15.1130")]
[assembly: AssemblyVersion("23.05.29.0100")]
[assembly: AssemblyFileVersion("23.05.29.0100")]

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class ReportUserData
{
public DateTime date { get; set; }
public string uid { get; set; }
public string uname { get; set; }
public double hrs { get; set; }
}

View File

@@ -11,8 +11,26 @@ namespace Project
{
public partial class fMain
{
DateTime redisTryTime = DateTime.Parse("1982-11-23");
//DateTime redisTryTime = DateTime.Parse("1982-11-23");
Boolean bBW = true;
DateTime ChkMakeAutoTime = DateTime.Now.AddDays(-1);
DateTime ChkSendMailTime = DateTime.Now.AddDays(-1);
DateTime ChkMakeSchDayWeekTime = DateTime.Now.AddDays(-1);
DateTime ChkMakeSchDay = DateTime.Now.AddDays(-1);
DateTime ChkNoSchedule = DateTime.Now.AddDays(-1);
DateTime ChkJobreportDay = DateTime.Now.AddDays(-1);
DateTime ChkJObreportWeek = DateTime.Now.AddDays(-1);
public string MailSort(string addr, string except)
{
if (string.IsNullOrEmpty(except)) return addr;
var alist = addr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
var elist = except.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (var item in elist)
alist.Remove(item);
if (alist.Count < 1) return string.Empty;
return string.Join(";", alist);
}
string getdbdata(object tdata)
{
@@ -45,89 +63,6 @@ namespace Project
return list_to;
}
DateTime ChkAutoDate = DateTime.Now;
void MakeAutoMail()
{
var ts = DateTime.Now - ChkAutoDate;
if (ts.TotalMinutes < 1) return; //10분마다 자동 생성 데이터를 처리한다
Console.WriteLine("Check Auto Make Mail");
var taData = new dsMSSQLTableAdapters.MailDataTableAdapter();
var taList = new dsMSSQLTableAdapters.MailAutoTableAdapter();
var dtList = taList.GetByAutoSend();
var dtInsert = new dsMSSQL.MailDataDataTable();
//대상
Console.WriteLine("Make Auto Send Mail Data (" + dtList.Rows.Count.ToString() + ")");
foreach (dsMSSQL.MailAutoRow dr in dtList)
{
//시간정보가 없는 애들은 처리 하지 않음
if (dr.stime.IndexOf(":") == -1) continue;
if (dr.sday == null || dr.sday.Length < 2) continue;
//발신시간을 넘어야 한다
var curTime = DateTime.Now.ToString("HH:mm");
if (string.Compare(curTime, dr.stime) < 0) continue; //지정된 시간 이전이면 생성 안한다
//자동생성 구분용 카테고리
var cate = string.Format("{0},{1}", dr.sday[0], dr.sday[1]);
//동륵일
var pdate = DateTime.Now.ToString("yyyy-MM-dd");
//같은날, 같은 atime aidx pdate 의 같이 있으면 이미 생성된것이므로 추가하지 않는다
var existData = taData.FindAutoData(dr.idx, dr.stime, pdate, cate);
var PreMakeCount = (int)(existData);
if (PreMakeCount > 0) continue;
//전송간격과 대상
if (dr.sday[0] == 1)
{
//week
var bitString = Convert.ToString(dr.sday[1], 2).PadLeft(8, '0').ToArray();
var weeknum = (int)(DateTime.Now.DayOfWeek);
if (bitString[weeknum + 1] == '0') continue;
}
else
{
//month
if (dr.sday[1] != DateTime.Now.Day) continue;
}
//같은날, 같은 atime aidx pdate 의 같이 있으면 이미 생성된것이므로 추가하지 않는다
//생성해야할 자료라면 만들어 준다
var newdr = dtInsert.NewMailDataRow();
newdr.pdate = pdate;// DateTime.Now.ToString("yyyy-MM-dd");
newdr.gcode = dr.gcode;
newdr.fromlist = dr.fromlist;
newdr.tolist = dr.tolist;
newdr.bcc = dr.bcc;
newdr.cate = cate;// string.Format("{0},{1}", dr.sday[0], dr.sday[1]); //cate에 해당 자료를 기록한다.
newdr.cc = dr.cc;
newdr.subject = dr.subject;
newdr.body = dr.body;
newdr.aidx = dr.idx;
newdr.atime = dr.stime;
newdr.wuid = "DEV";
newdr.wdate = DateTime.Now;
dtInsert.AddMailDataRow(newdr);
try
{
taData.Update(newdr);
Console.WriteLine("auto make : " + newdr.tolist + ",subject=" + newdr.subject);
}
catch (Exception eX)
{
Console.WriteLine("auto make error : " + eX.Message);
}
}
ChkAutoDate = DateTime.Now;
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
@@ -135,163 +70,86 @@ namespace Project
while (bBW)
{
ServerUtil.IsMailserver = ServerUtil.SendmailSet();
if (ServerUtil.IsMailserver)
if (ServerUtil.IsMailserver && System.Diagnostics.Debugger.IsAttached == false)
{
//메일서버역할이 있다.
try
//메일대기내역전송
var tsSendMail = DateTime.Now - ChkSendMailTime;
if (tsSendMail.TotalMilliseconds > 1000)
{
var cn = new System.Data.SqlClient.SqlConnection(Properties.Settings.Default.gwcs);
var cmd = new System.Data.SqlClient.SqlCommand("", cn);
cn.Open();
//1개의데이터 가져오기
cmd.CommandText = "SELECT top 1 * FROM MailData WHERE ISNULL(SendOK, 0) = 0 order by wdate";
var dar = cmd.ExecuteReader();
var list_from = string.Empty;// getMaillist(dar["fromlist"]);
var list_to = string.Empty;// getMaillist(dar["tolist"]);
var list_bcc = string.Empty;// getMaillist(dar["bcc"]);
var list_cc = string.Empty;//getMaillist(dar["cc"]);
var subject = string.Empty;// getdbdata(dar["subject"]).Trim();
var body = string.Empty;//getdbdata(dar["body"]).Trim();
var idx = -1;
while (dar.Read())
{
list_from = getMaillist(dar["fromlist"]);
list_to = getMaillist(dar["tolist"]);
list_bcc = getMaillist(dar["bcc"]);
list_cc = getMaillist(dar["cc"]);
subject = getdbdata(dar["subject"]).Trim();
body = getdbdata(dar["body"]).Trim();
idx = (int)dar["idx"];
}
dar.Close();
string sendMsg = "";
if (list_from == "")
{
sendMsg = ("보내는 주소가 없습니다");
}
else if (subject.Trim() == "")
{
sendMsg = ("메일 제목이 없습니다");
}
else if (body.Trim() == "")
{
sendMsg = ("본문이 없습니다");
}
else if (list_to == "")
{
sendMsg = ("받는 주소가 없습니다");
}
if (sendMsg.isEmpty()==false)
{
//오류가 있다
try
{
cmd.CommandText = "UPDATE MailData SET SendOK = 1, SendMsg = @msg WHERE(idx = @idx) and isnull(sendok,0) = 0";
cmd.Parameters.Clear();
cmd.Parameters.Add("msg", System.Data.SqlDbType.VarChar).Value = sendMsg;
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
//Console.WriteLine(string.Format("Send Complete index={0},Msg={1}", dar["idx"], sendMsg));
//ta.UpdateSendOK(sendMsg, dr.idx);
var ucnt = cmd.ExecuteNonQuery();
if (ucnt == 1)
{
Console.WriteLine("send mail to" + list_to + ",subject=" + getdbdata(subject));
}
}
catch (Exception eX)
{
sendMsg = eX.Message;
}
}
else
{
//var body = getdbdata(dar["body"]);
body +=
"<p>" +
"<br />이 메일은 EET 프로그램에서 자동 발신 되었습니다." +
"<br />메일이 잘못 전송 되었다면 [<a href='chikyun.kim@amkor.co.kr'>chikyun.kim@amkor.co.kr</a>] 로 문의 주시기 바랍니다" +
"</p>";
//전송을 해야 함
var mc = new System.Net.Mail.SmtpClient("10.101.10.6");
var msg = new System.Net.Mail.MailMessage
(list_from,
list_to,
subject,
body);
if (list_bcc != "") msg.Bcc.Add(list_bcc);
if (list_cc != "") msg.CC.Add(list_cc);
msg.IsBodyHtml = true;
bool msgupdate = false;
try
{
sendMsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
cmd.CommandText = "UPDATE MailData SET SendOK = 1, SendMsg = @msg WHERE(idx = @idx) and isnull(sendok,0) = 0";
cmd.Parameters.Clear();
cmd.Parameters.Add("msg", System.Data.SqlDbType.VarChar).Value = sendMsg;
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
//Console.WriteLine(string.Format("Send Complete index={0},Msg={1}", dar["idx"], sendMsg));
//ta.UpdateSendOK(sendMsg, dr.idx);
var ucnt = cmd.ExecuteNonQuery();
if (ucnt == 1)
{
mc.Send(msg);
Console.WriteLine("send mail to" + list_to + ",subject=" + getdbdata(subject));
}
}
catch (Exception eX)
{
sendMsg = eX.Message;
msgupdate = true;
}
try
{
if (msgupdate)
{
cmd.CommandText = "UPDATE MailData SET SendMsg = @msg WHERE idx = @idx ";
cmd.Parameters.Clear();
cmd.Parameters.Add("idx", System.Data.SqlDbType.Int).Value = idx;
var ucnt = cmd.ExecuteNonQuery();
}
}
catch (Exception eX)
{
//sendMsg = eX.Message;
//msgupdate = true;
}
}
cmd.Dispose();
cn.Close();
try { SendMail(); }
catch { }
finally { ChkSendMailTime = DateTime.Now; }
}
catch (Exception ex)
//자동생성 메일 작성
var tsAutoMake = DateTime.Now - ChkMakeAutoTime;
if (tsAutoMake.TotalMinutes >= 10)
{
try { MakeAutoMail(); }
catch { }
finally { ChkMakeAutoTime = DateTime.Now; }
}
///스케쥴 기한 알림(주)
var tsScheDayweek = DateTime.Now - ChkMakeSchDayWeekTime;
if (tsScheDayweek.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10)
{
try { MakeScheduleDayWeek(); }
catch { }
finally { ChkMakeSchDayWeekTime = DateTime.Now; }
}
System.Threading.Thread.Sleep(1500);
try
{
MakeAutoMail();
}
catch (Exception ex)
///스케쥴 기한 알림(일)
var tsScheDay = DateTime.Now - ChkMakeSchDay;
if (tsScheDay.TotalMinutes > 15 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.Hour >= 10)
{
try { MakeScheduleDay(); }
catch { }
finally { ChkMakeSchDay = DateTime.Now; }
}
System.Threading.Thread.Sleep(500);
///스케쥴없음
var tsNoSchedule = DateTime.Now - ChkNoSchedule;
if (tsNoSchedule.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10)
{
try { Mail_NoSchedule(); }
catch { }
finally { ChkNoSchedule = DateTime.Now; }
}
///업무일지(주간)
var tsjobweek = DateTime.Now - ChkJObreportWeek;
if (tsjobweek.TotalMinutes > 15 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 9)
{
try { Mail_JobReportWeek(); }
catch { }
finally { ChkJObreportWeek = DateTime.Now; }
}
///업무일지(일)
var tsjobday = DateTime.Now - ChkJobreportDay;
if (tsjobday.TotalMinutes > 15 &&
DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
DateTime.Now.DayOfWeek != DayOfWeek.Sunday &&
DateTime.Now.DayOfWeek != DayOfWeek.Monday &&
DateTime.Now.Hour >= 9)
{
try { Mail_JobReportDay(); }
catch { }
finally { ChkJobreportDay = DateTime.Now; }
}
System.Threading.Thread.Sleep(1000);
}
else System.Threading.Thread.Sleep(3000);
else System.Threading.Thread.Sleep(60000); //메일서비스사용안하므로 1분정도 지연한다
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -138,6 +138,7 @@
this.sPR설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.bwrunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tabControl1 = new System.Windows.Forms.TabControl();
@@ -445,7 +446,7 @@
//
// 담당자별현황ToolStripMenuItem
//
this.ToolStripMenuItem.ForeColor = System.Drawing.Color.Red;
this.ToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.ToolStripMenuItem.Name = "담당자별현황ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(180, 24);
this.ToolStripMenuItem.Text = "목록(챔피언)";
@@ -873,7 +874,8 @@
this.ToolStripMenuItem,
this.sPR설정ToolStripMenuItem,
this.toolStripMenuItem13,
this.ToolStripMenuItem});
this.ToolStripMenuItem,
this.bwrunToolStripMenuItem});
this.btDev.ForeColor = System.Drawing.Color.Blue;
this.btDev.Image = ((System.Drawing.Image)(resources.GetObject("btDev.Image")));
this.btDev.Name = "btDev";
@@ -1036,6 +1038,13 @@
this.ToolStripMenuItem.Text = "프로젝트스케쥴담당자사번업데이트";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// bwrunToolStripMenuItem
//
this.bwrunToolStripMenuItem.Name = "bwrunToolStripMenuItem";
this.bwrunToolStripMenuItem.Size = new System.Drawing.Size(302, 24);
this.bwrunToolStripMenuItem.Text = "bw-run";
this.bwrunToolStripMenuItem.Click += new System.EventHandler(this.bwrunToolStripMenuItem_Click);
//
// 버젼확인ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("버젼확인ToolStripMenuItem.Image")));
@@ -1299,6 +1308,7 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15;
private System.Windows.Forms.ToolStripMenuItem bwrunToolStripMenuItem;
}
}

View File

@@ -1434,5 +1434,10 @@ namespace Project
{
menu_projecTU_list();
}
private void bwrunToolStripMenuItem_Click(object sender, EventArgs e)
{
bw_DoWork(null, null);
}
}
}

View File

@@ -452,14 +452,14 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPY4CDmcasDEu1MxmW6ixgWKbTwrBYVx0svkqL
h2GZViHDMu15QPFWhmXqUmBxDLBUZzVQwX84Xqzzg2GJpifDMs3rKOJLtZ4ADZWA6oKCpVo2IEmBtZb/
/U7m/E+5XP8/92TF/3lzYj/ULMn/l3q54X/kubL/qtu8oIZo90F1QsEynQn8a8yPJV+p/1Z8q+d/yc2e
/4dm5vx/1Jn2/+qkzJ8gMRg22R16gmGJzjWoTihYqitYfKu7Dqao41D9/+ulEf9PtPr8vV7o9blnWyHc
/U7m/E+5XP8/92TF/3lzYj/ULMr/l3q54X/kubL/qtu8oIZo90F1QsEynQn8a8yPJV+p/1Z8q+d/yc2e
/4dm5vx/1Jn2/+qkzJ8gMRg22R16gmGJzjWoTihYqitYfKu7Dqao41D9/+ulEf+PtXr9vV7o9blnWyHc
gOJbXRdA6qE6EaD4ZvdcmKLKSx3LzheGHLyc7PbtYpDa/20VTnuLL3Z8BMkV3Ox5B9WCCmAuKLrZUwLi
v2iNEH9c5vn/SobWnyfZNmqFN3v1gbZ/LrrVcx6sAR0U3+kxLr7RdRzKZXhc7On5qNTjPxiXeHmAxICu
LAVa1AJWgA0U3+kWgzIZnlR4ZcEMeFLpnQkSq79fz5F7ayIfWAEh8KjCs+9Judd/EH5c7tULFSYeAP2/
Ee6FUo8NUGHiwP/99RwvuqJOv+mJ+w/CLzsjT4HEoNLYwb8D/Zp/D/T2/T/Qe+bFgd7fQPo/MoaKnQGr
2d+jAdUG1LhtIjtQcP6LlfX/0DXhwiC1fw/0zAPpZfi7v7cXmyJiMEgv0Ol9tkDTlgMFVpGCQXr+Heiz
BQA3bqsYWMfKRAAAAABJRU5ErkJggg==
Ee6FUo8NUGHiwP/99RwvuqJOv+mJ+w/CLzsjT4HEoNLYwb8D/Zp/D/T2/T/Qe+bZgd7fQPo/MoaKnQGr
2d+jAdUG1LhtIjtQcP6z5fX/0DXhwiC1fw/0zAPpZfi7v7cXmyJiMEgv0Ol9tkDTlgMFVpGCQXr+Heiz
BQAcLqsGT4fV4QAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -1341,7 +1341,42 @@ namespace FCOMMON
cn.Dispose();
return retval != 0;
}
public static List<String> getGroupListWithoutGcode(string GroupColumn, string table, string where = "", Boolean desc = false, Boolean useColumncover = true)
{
List<string> retval = new List<string>();
var cn = getCn();
cn.Open();
var sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
if (table.ToUpper() == "USERS")
sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
if (where != "") sql += " and " + where;
sql += " group by {0} " +
" order by {0} ";
if (desc) sql += " desc";
if (useColumncover)
sql = string.Format(sql, "[" + GroupColumn + "]", table);
else
sql = string.Format(sql, GroupColumn, table);
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
{
retval.Add(rdr[0].ToString());
}
cmd.Dispose();
cn.Close();
cn.Dispose();
return retval;
}
public static List<String> getGroupList(string GroupColumn, string table, string where = "", Boolean desc = false, Boolean useColumncover = true)
{
List<string> retval = new List<string>();

View File

@@ -418,6 +418,11 @@
<Compile Include="Project\ctlLayout.Designer.cs">
<DependentUpon>ctlLayout.cs</DependentUpon>
</Compile>
<Compile Include="Project\DSProjectSummary.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSProjectSummary.xsd</DependentUpon>
</Compile>
<Compile Include="Project\fLayoutEdit.cs">
<SubType>Form</SubType>
</Compile>
@@ -943,6 +948,17 @@
<DependentUpon>Model1.edmx</DependentUpon>
</None>
<None Include="packages.config" />
<None Include="Project\DSProjectSummary.xsc">
<DependentUpon>DSProjectSummary.xsd</DependentUpon>
</None>
<None Include="Project\DSProjectSummary.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSProjectSummary.Designer.cs</LastGenOutput>
</None>
<None Include="Project\DSProjectSummary.xss">
<DependentUpon>DSProjectSummary.xsd</DependentUpon>
</None>
<None Include="Properties\DataSources\EEEntities.datasource" />
<None Include="Properties\DataSources\EETGW_ProjectsSchedule.datasource" />
<None Include="Properties\Settings.settings">

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@@ -0,0 +1,413 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DSProjectSummary" targetNamespace="http://tempuri.org/DSProjectSummary.xsd" xmlns:mstns="http://tempuri.org/DSProjectSummary.xsd" xmlns="http://tempuri.org/DSProjectSummary.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="gwcs" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="gwcs (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.FPJ0000.Properties.Settings.GlobalReference.Default.gwcs" Provider="System.Data.SqlClient" />
</Connections>
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ProjectHrsTableAdapter" GeneratorDataComponentClassName="ProjectHrsTableAdapter" Name="ProjectHrs" UserDataComponentName="ProjectHrsTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectType="Unknown" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT (CASE pidx WHEN - 1 THEN '(기타)' ELSE projectName END) AS prj, SUM(hrs) AS hrs
FROM JobReport
WHERE (gcode = @gcode) AND (uid = @uid) AND (pdate BETWEEN @sd AND @ed) AND (type NOT LIKE '%미팅%') AND (type NOT LIKE '%휴가%')
GROUP BY (CASE pidx WHEN - 1 THEN '(기타)' ELSE projectName END)
UNION ALL
SELECT '(미팅)' AS prj, SUM(hrs) AS hrs
FROM JobReport AS JobReport_1
WHERE (gcode = @gcode) AND (uid = @uid) AND (pdate BETWEEN @sd AND @ed) AND (type LIKE '%미팅%')
UNION ALL
SELECT '(휴가)' AS prj, SUM(hrs) AS hrs
FROM JobReport AS JobReport_1
WHERE (gcode = @gcode) AND (uid = @uid) AND (pdate BETWEEN @sd AND @ed) AND (type LIKE '%휴가%')
ORDER BY prj</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="" DataSourceName="" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" Scale="0" Size="10" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="uid" ColumnName="" DataSourceName="" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" Scale="0" Size="20" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="sd" ColumnName="" DataSourceName="" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@sd" Precision="0" Scale="0" Size="10" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="ed" ColumnName="" DataSourceName="" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@ed" Precision="0" Scale="0" Size="10" SourceColumn="" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="prj" DataSetColumn="prj" />
<Mapping SourceColumn="hrs" DataSetColumn="hrs" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ProjectUserListTableAdapter" GeneratorDataComponentClassName="ProjectUserListTableAdapter" Name="ProjectUserList" UserDataComponentName="ProjectUserListTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.Projects" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT dbo.getUserName(championid) as username,championid
FROM Projects
WHERE gcode= @gcode
and championid is not null
and isnull(div,'') &lt;&gt; 'EB'
AND [status] in ('검토','보류','진행','완료')
group by championid,dbo.getUserName(championid)
order by username</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.Projects" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="username" DataSetColumn="username" />
<Mapping SourceColumn="championid" DataSetColumn="championid" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ProjectsTableAdapter" GeneratorDataComponentClassName="ProjectsTableAdapter" Name="Projects" UserDataComponentName="ProjectsTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.Projects" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="false" GeneratorGetMethodName="GetData" GeneratorSourceName="Fill" GetMethodModifier="Public" GetMethodName="GetData" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetData" UserSourceName="Fill">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT idx, pno, status, process, part, pdate, ReqSite, ReqPlant, ReqLine, ReqPackage, name, reqstaff, costo, costn, cnt, remark_req, sdate, ddate, edate, odate, orderno, path,
dbo.getScheduleProgress(idx) AS ProgressPrj, dbo.getLastHistory(idx) AS lasthistory, dbo.getProjectFinishRate(gcode, idx) AS finishrate, championid, designid, assemblyid, epanelid,
softwareid, userAssembly, dbo.getUserName2(championid, userManager) AS name_champion, dbo.getUserName2(designid, usermain) AS name_design, dbo.getUserName2(assemblyid,
userAssembly) AS name_assembly, dbo.getUserName2(epanelid, userhw2) AS name_epanel, dbo.getUserName2(softwareid, usersub) AS name_software, jasmin, memo
FROM Projects
WHERE (gcode = @gcode) AND (ISNULL(div, '') &lt;&gt; 'EB') AND (championid = @uid) AND (sdate &gt;= @sdate) AND (ISNULL(isdel, 0) = 0)
ORDER BY (CASE WHEN ([status] = '진행') THEN '0' WHEN ([status] = '검토') THEN '1' WHEN ([status] = '대기') THEN '2' WHEN ([status] = '완료') THEN '3' WHEN ([status] = '보류')
THEN '4' WHEN ([status] = '완료(보고)') THEN '5' WHEN ([status] = '취소') THEN '9' ELSE '5' END), userManager, sdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.Projects" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="uid" ColumnName="championid" DataSourceName="EE.dbo.Projects" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="championid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="sdate" ColumnName="sdate" DataSourceName="EE.dbo.Projects" DataTypeServer="varchar(50)" DbType="AnsiString" Direction="Input" ParameterName="@sdate" Precision="0" ProviderType="VarChar" Scale="0" Size="50" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="idx" DataSetColumn="idx" />
<Mapping SourceColumn="pno" DataSetColumn="pno" />
<Mapping SourceColumn="status" DataSetColumn="status" />
<Mapping SourceColumn="process" DataSetColumn="process" />
<Mapping SourceColumn="part" DataSetColumn="part" />
<Mapping SourceColumn="pdate" DataSetColumn="pdate" />
<Mapping SourceColumn="ReqSite" DataSetColumn="ReqSite" />
<Mapping SourceColumn="ReqPlant" DataSetColumn="ReqPlant" />
<Mapping SourceColumn="ReqLine" DataSetColumn="ReqLine" />
<Mapping SourceColumn="ReqPackage" DataSetColumn="ReqPackage" />
<Mapping SourceColumn="name" DataSetColumn="name" />
<Mapping SourceColumn="reqstaff" DataSetColumn="reqstaff" />
<Mapping SourceColumn="costo" DataSetColumn="costo" />
<Mapping SourceColumn="costn" DataSetColumn="costn" />
<Mapping SourceColumn="cnt" DataSetColumn="cnt" />
<Mapping SourceColumn="remark_req" DataSetColumn="remark_req" />
<Mapping SourceColumn="sdate" DataSetColumn="sdate" />
<Mapping SourceColumn="ddate" DataSetColumn="ddate" />
<Mapping SourceColumn="edate" DataSetColumn="edate" />
<Mapping SourceColumn="odate" DataSetColumn="odate" />
<Mapping SourceColumn="orderno" DataSetColumn="orderno" />
<Mapping SourceColumn="path" DataSetColumn="path" />
<Mapping SourceColumn="ProgressPrj" DataSetColumn="ProgressPrj" />
<Mapping SourceColumn="lasthistory" DataSetColumn="lasthistory" />
<Mapping SourceColumn="finishrate" DataSetColumn="finishrate" />
<Mapping SourceColumn="championid" DataSetColumn="championid" />
<Mapping SourceColumn="designid" DataSetColumn="designid" />
<Mapping SourceColumn="assemblyid" DataSetColumn="assemblyid" />
<Mapping SourceColumn="epanelid" DataSetColumn="epanelid" />
<Mapping SourceColumn="softwareid" DataSetColumn="softwareid" />
<Mapping SourceColumn="userAssembly" DataSetColumn="userAssembly" />
<Mapping SourceColumn="name_champion" DataSetColumn="name_champion" />
<Mapping SourceColumn="name_design" DataSetColumn="name_design" />
<Mapping SourceColumn="name_assembly" DataSetColumn="name_assembly" />
<Mapping SourceColumn="name_epanel" DataSetColumn="name_epanel" />
<Mapping SourceColumn="name_software" DataSetColumn="name_software" />
<Mapping SourceColumn="jasmin" DataSetColumn="jasmin" />
<Mapping SourceColumn="memo" DataSetColumn="memo" />
</Mappings>
<Sources />
</TableAdapter>
</Tables>
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DSProjectSummary" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DSProjectSummary" msprop:Generator_UserDSName="DSProjectSummary">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ProjectHrs" msprop:Generator_TableClassName="ProjectHrsDataTable" msprop:Generator_TableVarName="tableProjectHrs" msprop:Generator_TablePropName="ProjectHrs" msprop:Generator_RowDeletingName="ProjectHrsRowDeleting" msprop:Generator_RowChangingName="ProjectHrsRowChanging" msprop:Generator_RowEvHandlerName="ProjectHrsRowChangeEventHandler" msprop:Generator_RowDeletedName="ProjectHrsRowDeleted" msprop:Generator_UserTableName="ProjectHrs" msprop:Generator_RowChangedName="ProjectHrsRowChanged" msprop:Generator_RowEvArgName="ProjectHrsRowChangeEvent" msprop:Generator_RowClassName="ProjectHrsRow">
<xs:complexType>
<xs:sequence>
<xs:element name="prj" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnprj" msprop:Generator_ColumnPropNameInRow="prj" msprop:Generator_ColumnPropNameInTable="prjColumn" msprop:Generator_UserColumnName="prj" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="hrs" msdata:ReadOnly="true" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="hrs" msprop:Generator_ColumnVarNameInTable="columnhrs" msprop:Generator_ColumnPropNameInTable="hrsColumn" msprop:Generator_UserColumnName="hrs" type="xs:double" minOccurs="0" />
<xs:element name="perc" msprop:Generator_ColumnVarNameInTable="columnperc" msprop:Generator_ColumnPropNameInRow="perc" msprop:Generator_ColumnPropNameInTable="percColumn" msprop:Generator_UserColumnName="perc" type="xs:float" minOccurs="0" />
<xs:element name="shortname" msprop:Generator_ColumnVarNameInTable="columnshortname" msprop:Generator_ColumnPropNameInRow="shortname" msprop:Generator_ColumnPropNameInTable="shortnameColumn" msprop:Generator_UserColumnName="shortname" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ProjectUserList" msprop:Generator_TableClassName="ProjectUserListDataTable" msprop:Generator_TableVarName="tableProjectUserList" msprop:Generator_TablePropName="ProjectUserList" msprop:Generator_RowDeletingName="ProjectUserListRowDeleting" msprop:Generator_RowChangingName="ProjectUserListRowChanging" msprop:Generator_RowEvHandlerName="ProjectUserListRowChangeEventHandler" msprop:Generator_RowDeletedName="ProjectUserListRowDeleted" msprop:Generator_UserTableName="ProjectUserList" msprop:Generator_RowChangedName="ProjectUserListRowChanged" msprop:Generator_RowEvArgName="ProjectUserListRowChangeEvent" msprop:Generator_RowClassName="ProjectUserListRow">
<xs:complexType>
<xs:sequence>
<xs:element name="username" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnusername" msprop:Generator_ColumnPropNameInRow="username" msprop:Generator_ColumnPropNameInTable="usernameColumn" msprop:Generator_UserColumnName="username" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="championid" msprop:Generator_ColumnVarNameInTable="columnchampionid" msprop:Generator_ColumnPropNameInRow="championid" msprop:Generator_ColumnPropNameInTable="championidColumn" msprop:Generator_UserColumnName="championid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Projects" msprop:Generator_TableClassName="ProjectsDataTable" msprop:Generator_TableVarName="tableProjects" msprop:Generator_RowChangedName="ProjectsRowChanged" msprop:Generator_TablePropName="Projects" msprop:Generator_RowDeletingName="ProjectsRowDeleting" msprop:Generator_RowChangingName="ProjectsRowChanging" msprop:Generator_RowEvHandlerName="ProjectsRowChangeEventHandler" msprop:Generator_RowDeletedName="ProjectsRowDeleted" msprop:Generator_RowClassName="ProjectsRow" msprop:Generator_UserTableName="Projects" msprop:Generator_RowEvArgName="ProjectsRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
<xs:element name="pno" msprop:Generator_ColumnVarNameInTable="columnpno" msprop:Generator_ColumnPropNameInRow="pno" msprop:Generator_ColumnPropNameInTable="pnoColumn" msprop:Generator_UserColumnName="pno" type="xs:int" minOccurs="0" />
<xs:element name="status" msprop:Generator_ColumnVarNameInTable="columnstatus" msprop:Generator_ColumnPropNameInRow="status" msprop:Generator_ColumnPropNameInTable="statusColumn" msprop:Generator_UserColumnName="status" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="process" msprop:Generator_ColumnVarNameInTable="columnprocess" msprop:Generator_ColumnPropNameInRow="process" msprop:Generator_ColumnPropNameInTable="processColumn" msprop:Generator_UserColumnName="process" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="part" msprop:Generator_ColumnVarNameInTable="columnpart" msprop:Generator_ColumnPropNameInRow="part" msprop:Generator_ColumnPropNameInTable="partColumn" msprop:Generator_UserColumnName="part" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pdate" msprop:Generator_ColumnVarNameInTable="columnpdate" msprop:Generator_ColumnPropNameInRow="pdate" msprop:Generator_ColumnPropNameInTable="pdateColumn" msprop:Generator_UserColumnName="pdate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReqSite" msprop:Generator_ColumnVarNameInTable="columnReqSite" msprop:Generator_ColumnPropNameInRow="ReqSite" msprop:Generator_ColumnPropNameInTable="ReqSiteColumn" msprop:Generator_UserColumnName="ReqSite" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReqPlant" msprop:Generator_ColumnVarNameInTable="columnReqPlant" msprop:Generator_ColumnPropNameInRow="ReqPlant" msprop:Generator_ColumnPropNameInTable="ReqPlantColumn" msprop:Generator_UserColumnName="ReqPlant" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReqLine" msprop:Generator_ColumnVarNameInTable="columnReqLine" msprop:Generator_ColumnPropNameInRow="ReqLine" msprop:Generator_ColumnPropNameInTable="ReqLineColumn" msprop:Generator_UserColumnName="ReqLine" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ReqPackage" msprop:Generator_ColumnVarNameInTable="columnReqPackage" msprop:Generator_ColumnPropNameInRow="ReqPackage" msprop:Generator_ColumnPropNameInTable="ReqPackageColumn" msprop:Generator_UserColumnName="ReqPackage" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="reqstaff" msprop:Generator_ColumnVarNameInTable="columnreqstaff" msprop:Generator_ColumnPropNameInRow="reqstaff" msprop:Generator_ColumnPropNameInTable="reqstaffColumn" msprop:Generator_UserColumnName="reqstaff" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="costo" msprop:Generator_ColumnVarNameInTable="columncosto" msprop:Generator_ColumnPropNameInRow="costo" msprop:Generator_ColumnPropNameInTable="costoColumn" msprop:Generator_UserColumnName="costo" type="xs:double" minOccurs="0" />
<xs:element name="costn" msprop:Generator_ColumnVarNameInTable="columncostn" msprop:Generator_ColumnPropNameInRow="costn" msprop:Generator_ColumnPropNameInTable="costnColumn" msprop:Generator_UserColumnName="costn" type="xs:double" minOccurs="0" />
<xs:element name="cnt" msprop:Generator_ColumnVarNameInTable="columncnt" msprop:Generator_ColumnPropNameInRow="cnt" msprop:Generator_ColumnPropNameInTable="cntColumn" msprop:Generator_UserColumnName="cnt" type="xs:int" minOccurs="0" />
<xs:element name="remark_req" msprop:Generator_ColumnVarNameInTable="columnremark_req" msprop:Generator_ColumnPropNameInRow="remark_req" msprop:Generator_ColumnPropNameInTable="remark_reqColumn" msprop:Generator_UserColumnName="remark_req" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" msprop:Generator_ColumnPropNameInRow="sdate" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:Generator_UserColumnName="sdate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ddate" msprop:Generator_ColumnVarNameInTable="columnddate" msprop:Generator_ColumnPropNameInRow="ddate" msprop:Generator_ColumnPropNameInTable="ddateColumn" msprop:Generator_UserColumnName="ddate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edate" msprop:Generator_ColumnVarNameInTable="columnedate" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:Generator_UserColumnName="edate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="odate" msprop:Generator_ColumnVarNameInTable="columnodate" msprop:Generator_ColumnPropNameInRow="odate" msprop:Generator_ColumnPropNameInTable="odateColumn" msprop:Generator_UserColumnName="odate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="orderno" msprop:Generator_ColumnVarNameInTable="columnorderno" msprop:Generator_ColumnPropNameInRow="orderno" msprop:Generator_ColumnPropNameInTable="ordernoColumn" msprop:Generator_UserColumnName="orderno" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="path" msprop:Generator_ColumnVarNameInTable="columnpath" msprop:Generator_ColumnPropNameInRow="path" msprop:Generator_ColumnPropNameInTable="pathColumn" msprop:Generator_UserColumnName="path" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="300" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ProgressPrj" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnProgressPrj" msprop:Generator_ColumnPropNameInRow="ProgressPrj" msprop:Generator_ColumnPropNameInTable="ProgressPrjColumn" msprop:Generator_UserColumnName="ProgressPrj" type="xs:double" minOccurs="0" />
<xs:element name="lasthistory" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnlasthistory" msprop:Generator_ColumnPropNameInRow="lasthistory" msprop:Generator_ColumnPropNameInTable="lasthistoryColumn" msprop:Generator_UserColumnName="lasthistory" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="finishrate" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnfinishrate" msprop:Generator_ColumnPropNameInRow="finishrate" msprop:Generator_ColumnPropNameInTable="finishrateColumn" msprop:Generator_UserColumnName="finishrate" type="xs:int" minOccurs="0" />
<xs:element name="championid" msprop:Generator_ColumnVarNameInTable="columnchampionid" msprop:Generator_ColumnPropNameInRow="championid" msprop:Generator_ColumnPropNameInTable="championidColumn" msprop:Generator_UserColumnName="championid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="designid" msprop:Generator_ColumnVarNameInTable="columndesignid" msprop:Generator_ColumnPropNameInRow="designid" msprop:Generator_ColumnPropNameInTable="designidColumn" msprop:Generator_UserColumnName="designid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="assemblyid" msprop:Generator_ColumnVarNameInTable="columnassemblyid" msprop:Generator_ColumnPropNameInRow="assemblyid" msprop:Generator_ColumnPropNameInTable="assemblyidColumn" msprop:Generator_UserColumnName="assemblyid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="epanelid" msprop:Generator_ColumnVarNameInTable="columnepanelid" msprop:Generator_ColumnPropNameInRow="epanelid" msprop:Generator_ColumnPropNameInTable="epanelidColumn" msprop:Generator_UserColumnName="epanelid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="softwareid" msprop:Generator_ColumnVarNameInTable="columnsoftwareid" msprop:Generator_ColumnPropNameInRow="softwareid" msprop:Generator_ColumnPropNameInTable="softwareidColumn" msprop:Generator_UserColumnName="softwareid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="userAssembly" msprop:Generator_ColumnVarNameInTable="columnuserAssembly" msprop:Generator_ColumnPropNameInRow="userAssembly" msprop:Generator_ColumnPropNameInTable="userAssemblyColumn" msprop:Generator_UserColumnName="userAssembly" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name_champion" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnname_champion" msprop:Generator_ColumnPropNameInRow="name_champion" msprop:Generator_ColumnPropNameInTable="name_championColumn" msprop:Generator_UserColumnName="name_champion" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name_design" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnname_design" msprop:Generator_ColumnPropNameInRow="name_design" msprop:Generator_ColumnPropNameInTable="name_designColumn" msprop:Generator_UserColumnName="name_design" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name_assembly" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnname_assembly" msprop:Generator_ColumnPropNameInRow="name_assembly" msprop:Generator_ColumnPropNameInTable="name_assemblyColumn" msprop:Generator_UserColumnName="name_assembly" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name_epanel" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnname_epanel" msprop:Generator_ColumnPropNameInRow="name_epanel" msprop:Generator_ColumnPropNameInTable="name_epanelColumn" msprop:Generator_UserColumnName="name_epanel" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="name_software" msdata:ReadOnly="true" msprop:Generator_ColumnVarNameInTable="columnname_software" msprop:Generator_ColumnPropNameInRow="name_software" msprop:Generator_ColumnPropNameInTable="name_softwareColumn" msprop:Generator_UserColumnName="name_software" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="200" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="jasmin" msprop:Generator_ColumnVarNameInTable="columnjasmin" msprop:Generator_ColumnPropNameInRow="jasmin" msprop:Generator_ColumnPropNameInTable="jasminColumn" msprop:Generator_UserColumnName="jasmin" type="xs:int" minOccurs="0" />
<xs:element name="memo" msprop:Generator_ColumnVarNameInTable="columnmemo" msprop:Generator_ColumnPropNameInRow="memo" msprop:Generator_ColumnPropNameInTable="memoColumn" msprop:Generator_UserColumnName="memo" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:ProjectHrs" />
<xs:field xpath="mstns:prj" />
</xs:unique>
<xs:unique name="ProjectUserList_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:ProjectUserList" />
<xs:field xpath="mstns:championid" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:ProjectHrs" ZOrder="3" X="68" Y="72" Height="153" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:ProjectUserList" ZOrder="2" X="338" Y="85" Height="115" Width="232" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:Projects" ZOrder="1" X="135" Y="249" Height="305" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -10,6 +10,9 @@ namespace FPJ0000
{
dsPRJ.ProjectsRow dr = null;
bool EditMode = false;
public fProjectData(dsPRJ.ProjectsRow pidx_, bool editmode_ = true)
{
InitializeComponent();

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ namespace FPJ0000
private void __Load(object sender, EventArgs e)
{
//프로젝트 목록을 처리함
this.tbRequest.Text = FCOMMON.info.Login.nameK;
//this.tbRequest.Text = FCOMMON.info.Login.nameK;
//cmbDateType.SelectedIndex = 0; //기본시작일 기준으로 한다
//분류 - 190905
@@ -40,29 +40,29 @@ namespace FPJ0000
// cmbCate.Items.Add(dr["Value"].ToString());
//cmbCate.SelectedIndex = 0;
this.cmbSort.Items.Clear();
this.cmbSort.Items.AddRange(new string[] {
"---",
"Origin Cost",
"Input Cost",
"Effect Cost",
"Asset No",
"Project",
"Champion",
"Requestor",
"Process",
"Asset / 사용자 / 등록날짜",
"Project No",
"검토기한",
});
//this.cmbSort.Items.Clear();
//this.cmbSort.Items.AddRange(new string[] {
// "---",
// "Origin Cost",
// "Input Cost",
// "Effect Cost",
// "Asset No",
// "Project",
// "Champion",
// "Requestor",
// "Process",
// "Asset / 사용자 / 등록날짜",
// "Project No",
// "검토기한",
//});
chk검토_CheckedChanged(this.chk검토, null);
chk검토_CheckedChanged(this.chk진행, null);
chk검토_CheckedChanged(this.chk대기, null);
chk검토_CheckedChanged(this.chk보류, null);
chk검토_CheckedChanged(this.chk완료, null);
chk검토_CheckedChanged(this.chk취소, null);
chk검토_CheckedChanged(this.chk완료보고, null);
//chk검토_CheckedChanged(this.chk검토, null);
//chk검토_CheckedChanged(this.chk진행, null);
////chk검토_CheckedChanged(this.chk대기, null);
//chk검토_CheckedChanged(this.chk보류, null);
//chk검토_CheckedChanged(this.chk완료, null);
//chk검토_CheckedChanged(this.chk취소, null);
//chk검토_CheckedChanged(this.chk완료보고, null);
//this.cmbProcess.Items.Clear();
//this.cmbProcess.Items.Add("전체");
@@ -72,7 +72,7 @@ namespace FPJ0000
////cmbProcess.Text = FCOMMON.info.Login.process;
//if (cmbProcess.SelectedIndex < 0) cmbProcess.SelectedIndex = 0;
this.cmbSort.SelectedIndex = 0;
// this.cmbSort.SelectedIndex = 0;
//this.cmbYearS.Items.Clear();
//this.cmbYearE.Items.Clear();
//for (int i = 2010; i <= DateTime.Now.Year; i++)
@@ -82,7 +82,8 @@ namespace FPJ0000
//}
//this.cmbYearS.Text = DateTime.Now.AddYears(-2).Year.ToString("0000");
//this.cmbYearE.Text = DateTime.Now.Year.ToString("0000");
refreshData();
Refresh_UserList();
// refreshData();
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.project));
@@ -93,7 +94,7 @@ namespace FPJ0000
else
{
btSave.Visible = false; //목록에서 저장버튼은 제거한다.
fpSpread1.EditMode = false;
fpSpread1.Sheets[0].SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row;
fpSpread1.EditModePermanent = false;
@@ -110,136 +111,138 @@ namespace FPJ0000
{
string state = "";
if (chk검토.Checked && chk진행.Checked && chk보류.Checked && chk완료.Checked && chk취소.Checked && chk대기.Checked)
{
state = "";
}
else if (chk검토.Checked == false && chk진행.Checked == false && chk보류.Checked == false && chk완료.Checked == false && chk취소.Checked == false && chk대기.Checked == false)
{
chk진행.Checked = true;
state = "[status] = '진행'"; //아무것도 선택안하면 진행을 선택해준다.
}
else
{
state = "[status] in (";
if (chk검토.Checked) state += "'검토'";
if (chk보류.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'보류'";
}
if (chk대기.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'대기'";
}
if (chk진행.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'진행'";
}
if (chk취소.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'취소'";
}
if (chk완료.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'완료'";
}
if (chk완료보고.Checked)
{
if (state.EndsWith("(") == false) state += ",";
state += "'완료(보고)'";
}
state += ")";
}
// SELECT idx, status, pdate, name, usermain, usersub, request, reqstaff, sdate, edate, odate, memo, wuid, wdate, rev, pidx, userManager, level, part, process, costo, costn, cnt, remark_req,
// remark_ans, ddate, progress, import
//FROM Projects
//WHERE (status LIKE @state) AND (ISNULL(userManager, '') LIKE @username OR
// ISNULL(usermain, '') LIKE @username OR
// ISNULL(usersub, '') LIKE @username)
//ORDER BY (CASE WHEN [status] = '검토' THEN '0' WHEN ([status] = '진행') THEN '1' WHEN ([status] = '보류') THEN '2' WHEN ([status] = '완료') THEN '3' WHEN ([status] = '취소')
// THEN '9' ELSE '5' END)
// var orgQuery = this.ta.Adapter.SelectCommand.CommandText;
string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev]," +
" [process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff]," +
" [costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress]," +
" [memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div]," +
" dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory,'' AS wws, '' AS wwo, '' AS wwe, '' AS wwd,model,serial," +
" [championid], dbo.getProjectFinishRate(gcode, idx) AS finishrate," +
" championid,designid,assemblyid,epanelid,softwareid,userAssembly," +
"dbo.getUserName2(championid,usermanager) as name_champion," +
"dbo.getUserName2(designid,usermain) as name_design," +
"dbo.getUserName2(assemblyid,userAssembly) as name_assembly," +
"dbo.getUserName2(epanelid,userhw2) as name_epanel," +
"dbo.getUserName2(softwareid,usersub) as name_software," +
"ReqLine,ReqSite,ReqPackage,ReqPlant,pno,kdate,jasmin" +
string State_Select =
"SELECT [idx],pno,[status],[process],[part],[pdate], " +
"ReqSite,ReqPlant,ReqLine,ReqPackage,[name],'' as remark_ans,[reqstaff], [costo],[costn],[cnt], " +
"[remark_req],[sdate],[ddate],[edate],[odate], [orderno], " +
"[path], dbo.getScheduleProgress(idx) as ProgressPrj, " +
"dbo.getLastHistory(idx) AS lasthistory, " +
"dbo.getProjectFinishRate(gcode, idx) AS finishrate, " +
"championid, designid, assemblyid, epanelid, softwareid, userAssembly, " +
"dbo.getUserName2(championid, usermanager) as name_champion, " +
"dbo.getUserName2(designid, usermain) as name_design, " +
"dbo.getUserName2(assemblyid, userAssembly) as name_assembly, " +
"dbo.getUserName2(epanelid, userhw2) as name_epanel, " +
"dbo.getUserName2(softwareid, usersub) as name_software,jasmin,[memo],wuid,wdate,gcode,CMP_Description,CMP_Before,CMP_After" +
" FROM Projects";
//string State_Select = " SELECT [idx],[pidx],[gcode],[isdel],[status],[asset],[level],[rev],[process],[part],[pdate],[name],[userManager],[usermain],[usersub],[userhw2],[reqstaff],[costo],[costn],[cnt],[remark_req],[remark_ans],[sdate],[ddate],[edate],[odate],[progress],[memo],[wuid],[wdate],[orderno],[crdue],[import],[path],[userprocess],[bCost],[bFanOut],[div],dbo.getScheduleProgress(idx) as ProgressPrj, dbo.getLastHistory(idx) AS lasthistory, dbo.getWorkWeek(sdate) AS wws, dbo.getWorkWeek(odate) AS wwo, dbo.getWorkWeek(edate) AS wwe, dbo.getWorkWeek(ddate) AS wwd FROM Projects";
string State_where = " WHERE gcode=@gcode and isnull(div,'') <> 'EB' and ";
// if (btViewDel.Checked == false) State_where += " isnull(isdel,0)=0 and "; //삭제보기 햇을 경우
//var dateField = "pdate";
//if (cmbDateType.SelectedIndex == 1) dateField = "edate";
//else if (cmbDateType.SelectedIndex == 2) dateField = "odate";
//State_where += " " + dateField + " between '" + cmbYearS.Text + "-01-01' and '" + cmbYearE.Text + "-12-31' AND (ISNULL(userManager, '') LIKE @username OR " +
// "ISNULL(usermain, '') LIKE @username OR " +
// "ISNULL(reqstaff, '') LIKE @username OR " +
// "ISNULL(usersub, '') LIKE @username) ";
State_where += " (dbo.getUserName2(championid,usermanager) LIKE @username) ";
State_where += " championid = @username and sdate >= @sdate";
if (state != "") State_where += " AND " + state;
//if (cmbCate.SelectedIndex > 0) State_where += " AND isnull(category,'') = '" + cmbCate.Text + "'";
//if (cmbProcess.SelectedIndex > 0) State_where += " and isnull(userprocess,'') = '" + cmbProcess.Text.Trim() + "'";
string State_order = " ORDER BY (CASE " +
" WHEN ([status] = '진행') THEN '0' " +
" WHEN ([status] = '검토') THEN '1' " +
" WHEN ([status] = '대기') THEN '2' " +
" WHEN ([status] = '완료') THEN '3' " +
" WHEN ([status] = '완료(보고)') THEN '4' " +
" WHEN ([status] = '보류') THEN '5' " +
" WHEN ([status] = '보류') THEN '4' " +
" WHEN ([status] = '완료(보고)') THEN '5' " +
" WHEN ([status] = '취소') THEN '9' " +
" ELSE '5' END),userManager,sdate";
" ELSE '5' END),sdate desc";
string request = "%";
if (tbRequest.Text.Trim() != "") request = "%" + this.tbRequest.Text.Trim() + "%";
string request = cmbUserList.Text.Split('|')[1].Trim();
System.Data.SqlClient.SqlCommand selCmd = new System.Data.SqlClient.SqlCommand();
selCmd.Connection = ta.Connection;
selCmd.CommandText = State_Select + State_where + State_order;
selCmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
selCmd.Parameters.Add("username", SqlDbType.VarChar);
selCmd.Parameters.Add("sdate", SqlDbType.VarChar);
selCmd.Parameters["username"].Value = request;
selCmd.Parameters["sdate"].Value = DateTime.Now.AddYears(-5).ToShortDateString();
System.Data.SqlClient.SqlDataAdapter sda = new System.Data.SqlClient.SqlDataAdapter();
sda.SelectCommand = selCmd;
this.dsMSSQL.Projects.Clear();
sda.Fill(this.dsMSSQL.Projects);
//this.ta.Adapter.SelectCommand = selCmd;
//this.ta.Fill(this.dsMSSQL.Projects, state,request);
// this.ta.Adapter.SelectCommand.CommandText = orgQuery;
//제목줄을 업데이트한ㄷ remark_ans 열에
foreach (dsPRJ.ProjectsRow dr in this.dsMSSQL.Projects)
{
var plant = "";
var site = "";
var line = "";
if (dr.IsReqSiteNull() == false) site = dr.ReqSite;
if (dr.IsReqPlantNull() == false) plant = dr.ReqPlant;
if (dr.IsReqLineNull() == false) line = dr.ReqLine;
if (site.isEmpty()) site = "{SITE}";
else site = $"[{site}]";
if (plant.isEmpty()) plant = "{PLANT}";
if (line.isEmpty()) line = "{LINE},";
else if (line == "N/A" || line == "NA") line = string.Empty;
else line = $"Line {line},";
var fullname = $"{site} {plant},{line}{dr.name}";
dr.name2 = fullname.Trim();
}
this.dsMSSQL.Projects.AcceptChanges();
sbSumE.Text = this.dsMSSQL.Projects.Sum(t => t.coste).ToString("N2");
sbSumO.Text = this.dsMSSQL.Projects.Sum(t => t.costo).ToString("N2");
sbSumI.Text = this.dsMSSQL.Projects.Sum(t => t.costn).ToString("N2");
FormattingData();
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
Refresh_ProjectHrs();
}
void Refresh_UserList()
{
var ta = new Project.DSProjectSummaryTableAdapters.ProjectUserListTableAdapter();
var dt = ta.GetData(FCOMMON.info.Login.gcode);
cmbUserList.Items.Clear();
foreach (Project.DSProjectSummary.ProjectUserListRow dr in dt)
{
cmbUserList.Items.Add($"{dr.username}|{dr.championid}");
}
cmbUserList.Text = $"{FCOMMON.info.Login.nameK}|{FCOMMON.info.Login.no}";
}
/// <summary>
/// 프로젝트별 시간투입시간을 갱신한다
/// </summary>
void Refresh_ProjectHrs()
{
var ta = new Project.DSProjectSummaryTableAdapters.ProjectHrsTableAdapter();
var uid = cmbUserList.Text.Split('|')[1].Trim();
var sd = DateTime.Now.AddDays(-7);
var ed = DateTime.Now;
ta.Fill(dsProjectSummary1.ProjectHrs, FCOMMON.info.Login.gcode, uid, sd.ToShortDateString(), ed.ToShortDateString());
//var ss = chart1.Series[0];
//ss.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.String;
//ss.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Double;
//ss.Points.Clear();
//총량확인
var sumhrs = dsProjectSummary1.ProjectHrs.Sum(t => t.hrs);
foreach (Project.DSProjectSummary.ProjectHrsRow dr in dsProjectSummary1.ProjectHrs)
{
dr.perc = (float)((dr.hrs / sumhrs) * 100f);
//ss.Points.Add(new System.Windows.Forms.DataVisualization.Charting.DataPoint
//{
// AxisLabel = (dr.prj == "___" ? "(기타)" : dr.prj),
// YValues = new double[] { dr.hrs }
//});
if (dr.prj.Length > 40)
dr.shortname = dr.prj.Substring(0, 40) + "...";
else dr.shortname = dr.prj;
//ss.Points.Add( dr.hrs);
}
dsProjectSummary1.ProjectHrs.AcceptChanges();
//프로젝트참여율 확인
foreach(dsPRJ.ProjectsRow dr in this.dsMSSQL.Projects)
{
var data = dsProjectSummary1.ProjectHrs.Where(t => t.prj == dr.name).FirstOrDefault();
if (data != null) dr.chamyeo = data.perc;
else dr.SetchamyeoNull();
}
this.dsMSSQL.Projects.AcceptChanges();
//this.chart1.Invalidate();
// arDatagridView1.AutoResizeColumns();
this.bsProjectHRS.Sort = "perc desc";
}
void FormattingData()
{
@@ -374,11 +377,11 @@ namespace FPJ0000
private void toolStripLabel3_Click(object sender, EventArgs e)
{
//사용자목록처리
if (tbRequest.Text != "")
{
tbRequest.Text = string.Empty;
}
else tbRequest.Text = FCOMMON.info.Login.nameK;
//if (tbRequest.Text != "")
//{
// tbRequest.Text = string.Empty;
//}
//else tbRequest.Text = FCOMMON.info.Login.nameK;
refreshData();
}
@@ -530,16 +533,31 @@ namespace FPJ0000
{
//히스토리 데이터를 업데이트하고 첫번재 자료를 표시한다.
var drv = this.bs.Current as DataRowView;
if (drv == null)
{
this.label1.Text = "프로젝트가 선택되지 않았습니다";
return;
}
if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectsRow;
this.label1.Text = string.Format("[{0}] {1}", dr.name, dr.memo);
rt_aft.Rtf = dr.CMP_After;
rt_bef.Rtf = dr.CMP_Before;
rt_cmp.Rtf = dr.CMP_Description;
if (dr.IslasthistoryNull() == false)
{
if (dr.lasthistory.StartsWith("["))
{
var dtstr = dr.lasthistory.Substring(1, 10);
if(DateTime.TryParse(dtstr,out DateTime ldt))
{
var ts = DateTime.Now - ldt;
if (ts.TotalDays >= 7) richTextBox2.BackColor = Color.WhiteSmoke;
else richTextBox2.BackColor = Color.White;
}
else richTextBox2.BackColor = Color.WhiteSmoke;
}
else richTextBox2.BackColor = Color.WhiteSmoke;
}
else richTextBox2.BackColor = Color.WhiteSmoke;
button2.BackColor = dr.jasmin > 0 ? Color.Lime : SystemColors.Control;
var progress = FCOMMON.DBM.GetProjectBuyInfo(dr.idx);
//var sql = "select ((sum((case when isnull(qtybuy,0) = isnull(qtyin,0) then 1 else 0 end))*1.0) / count(*))*100 " +
@@ -644,8 +662,8 @@ namespace FPJ0000
private void tbRequest_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btSearch.PerformClick();
//if (e.KeyCode == Keys.Enter)
// btSearch.PerformClick();
}
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
@@ -659,56 +677,56 @@ namespace FPJ0000
//Champion
//Requestor
//Process
switch (cmbSort.SelectedIndex)
{
case 1:
if (this.bs.Sort == "costo") this.bs.Sort = "costo desc";
else this.bs.Sort = "costo";
break;
case 2:
if (this.bs.Sort == "costn") this.bs.Sort = "costn desc";
else this.bs.Sort = "costn";
break;
case 3:
if (this.bs.Sort == "coste") this.bs.Sort = "coste desc";
else this.bs.Sort = "coste";
break;
case 4:
if (this.bs.Sort == "asset") this.bs.Sort = "asset desc";
else this.bs.Sort = "asset";
break;
case 5:
if (this.bs.Sort == "[name]") this.bs.Sort = "[name] desc";
else this.bs.Sort = "[name]";
break;
case 6:
if (this.bs.Sort == "userManager") this.bs.Sort = "userManager desc";
else this.bs.Sort = "userManager";
break;
case 7:
if (this.bs.Sort == "reqstaff") this.bs.Sort = "reqstaff desc";
else this.bs.Sort = "reqstaff";
break;
case 8:
if (this.bs.Sort == "process") this.bs.Sort = "process desc";
else this.bs.Sort = "process";
break;
case 9:
//"Asset / 사용자 / 등록날짜"
var sort = "asset,usermain,pdate";
if (this.bs.Sort == sort) this.bs.Sort = sort;
else this.bs.Sort = sort;
break;
case 10:
this.bs.Sort = "pno";
break;
case 11://검토기한 230209
this.bs.Sort = "kdate";
break;
default:
this.bs.Sort = "";
break;
}
//switch (cmbSort.SelectedIndex)
//{
// case 1:
// if (this.bs.Sort == "costo") this.bs.Sort = "costo desc";
// else this.bs.Sort = "costo";
// break;
// case 2:
// if (this.bs.Sort == "costn") this.bs.Sort = "costn desc";
// else this.bs.Sort = "costn";
// break;
// case 3:
// if (this.bs.Sort == "coste") this.bs.Sort = "coste desc";
// else this.bs.Sort = "coste";
// break;
// case 4:
// if (this.bs.Sort == "asset") this.bs.Sort = "asset desc";
// else this.bs.Sort = "asset";
// break;
// case 5:
// if (this.bs.Sort == "[name]") this.bs.Sort = "[name] desc";
// else this.bs.Sort = "[name]";
// break;
// case 6:
// if (this.bs.Sort == "userManager") this.bs.Sort = "userManager desc";
// else this.bs.Sort = "userManager";
// break;
// case 7:
// if (this.bs.Sort == "reqstaff") this.bs.Sort = "reqstaff desc";
// else this.bs.Sort = "reqstaff";
// break;
// case 8:
// if (this.bs.Sort == "process") this.bs.Sort = "process desc";
// else this.bs.Sort = "process";
// break;
// case 9:
// //"Asset / 사용자 / 등록날짜"
// var sort = "asset,usermain,pdate";
// if (this.bs.Sort == sort) this.bs.Sort = sort;
// else this.bs.Sort = sort;
// break;
// case 10:
// this.bs.Sort = "pno";
// break;
// case 11://검토기한 230209
// this.bs.Sort = "kdate";
// break;
// default:
// this.bs.Sort = "";
// break;
//}
}
private void btCopy_Click(object sender, EventArgs e)
@@ -841,8 +859,8 @@ namespace FPJ0000
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectsRow;
if(dr.jasmin < 1)
if (dr.jasmin < 1)
{
FCOMMON.Util.MsgE($"프로젝트 정보에 자스민 TASK ID가 입력되지 않았습니다");
return;
@@ -858,22 +876,22 @@ namespace FPJ0000
private void bsHist_CurrentChanged(object sender, EventArgs e)
{
var drv = this.bsHist.Current as DataRowView;
if (drv == null)
{
label4.BackColor = SystemColors.Control;
return;
}
var dr = drv.Row as dsPRJ.ProjectsHistoryRow;
//var drv = this.bsHist.Current as DataRowView;
//if (drv == null)
//{
// label4.BackColor = SystemColors.Control;
// return;
//}
//var dr = drv.Row as dsPRJ.ProjectsHistoryRow;
if (dr.IspdateNull()) label4.BackColor = SystemColors.Control;
else if (DateTime.TryParse(dr.pdate, out DateTime dt_pdate))
{
var ts = DateTime.Now - dt_pdate;
if (ts.TotalDays > 7) label4.BackColor = Color.Tomato;
else label4.BackColor = Color.Lime;
}
else label4.BackColor = SystemColors.Control;
//if (dr.IspdateNull()) label4.BackColor = SystemColors.Control;
//else if (DateTime.TryParse(dr.pdate, out DateTime dt_pdate))
//{
// var ts = DateTime.Now - dt_pdate;
// if (ts.TotalDays > 7) label4.BackColor = Color.Tomato;
// else label4.BackColor = Color.Lime;
//}
//else label4.BackColor = SystemColors.Control;
}
@@ -886,5 +904,41 @@ namespace FPJ0000
{
this.Close();
}
private void toolStrip2_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();
}
private void button3_Click(object sender, EventArgs e)
{
refreshData();
}
private void button1_Click_2(object sender, EventArgs e)
{
//FCOMMON.Util.MsgI("이전사람선택하기");
if (cmbUserList.SelectedIndex > 0)
cmbUserList.SelectedIndex -= 1;
refreshData();
}
private void button2_Click_2(object sender, EventArgs e)
{
//FCOMMON.Util.MsgI("다음사람선택하기");
if (cmbUserList.SelectedIndex < cmbUserList.Items.Count - 1)
cmbUserList.SelectedIndex += 1;
refreshData();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Refresh_UserList();
}
}
}

View File

@@ -339,191 +339,29 @@
<value>248, 17</value>
</metadata>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>934, 17</value>
<value>201, 56</value>
</metadata>
<metadata name="bsHist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>561, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>731, 17</value>
<value>455, 17</value>
</metadata>
<metadata name="taHist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 17</value>
<value>541, 17</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>828, 17</value>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>625, 17</value>
</metadata>
<metadata name="perc.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="bsProjectHRS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1036, 17</value>
</metadata>
<metadata name="dsProjectSummary1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>874, 17</value>
</metadata>
<metadata name="projectHrsTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<data name="chk검토.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk대기.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk진행.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk보류.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk취소.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk완료.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="chk완료보고.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPbS5NxHMbfv6DrubX3LQ0vMi+KUVQK6UWE
SLgGHtI0c5mHtr07qCltE4bNtEgD52FJimiWpVY7OJOpczadU8rEZVNCzN10oNowOtjT+45JGhUEPfDw
+158P8/vTPx3ZU8lRJ0aP6xOdxz0JZn2BpJMsQGhLcYntO5Wp1h2RYXbfq8cV7wo1bHfr3JkoMNrQO9i
Z8jt8w0osqUgsZvyH+kmReH2rcpxHhIJRwTBuhktrMt9aH1+HbqZspDZ2rzci9qJC9hn4AcP3OBtDTk5
FhcpsgtWWZhtrPBIUOougmKiACrGJYzLJ4thenkXl52l2GPgrMYayMgwThAZdoGGHk4LzczCLEi7zkI6
ngep8wzkzjzYVyzQuGQwMyHZt48h+tp2TRgnCOGjWF+7twFGbz1KJwsheyxmwFzIxhg7cjHyygZW/uAK
mp/WonWmFlQ1xxfGCeKoKXrt/tItVHoUULrymZX0Y/7dLOjRPAyvDITgb+tf0fzkCjSjhej1toPUblsL
4wSReI9a61vsgtZNo9KtxIfP70PQ20+vQyMLG6arIbdlQm0/hz5vG8iKzQFdlO/mbD1a5q5CNSaGfrIc
wS8fQ/D693UYpi5BYk2Dgglo9FShxaUHpdq0hbgOUiPuT4Zp6Q7KR8WQ23NQNV6ChTdzaJ6uwXlLKqTm
dKisWTC96MJxYwLIMu7PQxS0kpHs1egdCjzwdaNs6DSUg1mgBzIgM7Nm4Uw8XOiEdqAQJM1ZJelN18gq
po4n2qHlBXV2CcxMSJNHD/VQPi4OitHEbMHEwGprPvgF3CAp/+UhbWhnDU9EaSP8J9oS0eLWo+eZET2z
RhhcOiQ3xiOiOMJPSv8Ab4iv40eRGq6aquD4SCU3QNLcACVhapqr5kv4f/9M/y6C+AFrq7EfCv24YgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAWOSURBVFhH3VjZU1tVGM+M24PLi+sf4IIjDy7PjlbtyGhB
wMkOyBoKTgVZRsLihewLZW0ZHaDQh2KnaKWQhNCahCxNSBMK4xhKsDY4pS0FWVxebKXxfHBIbi43CSUk
D/3NfAN3vt8955dzz7ecw3hgkfaV7g2ebFz1mfKirqDNOVHU4fIUd7qvob9zgg73FE9utmNq4pBWPfQk
T25S5LVMuKv7Zv+UjSz71aPrtHa4c9KHX4s/3iFMD3NkJimsjujsrXt0gqiWMIEsYiw5S2lzNw0u3KUT
Es7oBLKbjAvoR/rCGVdsXMr4+rwS06ODKzHklByb+l2lW6MVASbXrPhrT/s2Kk54Vz/v+vl6KbIve72r
OSrbIh4mABBNNwZY3en5f7hSazumRgdXaiwr75m5TTeYSrfqL+/2LOW1OB08mbkrs0FzIK1+9JWDlWOP
pxzRPZYqPPf8J3Uj7+KhAggncEuceffi2I2G7PLuK7eoA6l06/6qk3MrOUqrnl1//lVM3zXCCSzrnrnN
FhkyMS0yYM/BZ6UOotCs+vOaHb+wm0bfxtT7RqRPfLjT7WMTF17GVHpAtEJAUPecaGjxP77SZk2vOfs0
pu4JoQJD51Bp1/zZCtsEk3nmIUzfCUgl1GiFlcuWWywCgfsRTNsztgUKB3x/82XmqzA2eS7i+xt3OFJT
PaaHApIwCvU58gvwK+Gzxrpy2wCBIA5VoI5DxPAzBa3OK6HzrfuL2l2zEGz4lSCgQlCTcFW/dyWWPUcF
T2ZaAnH4kcGSGD+s6ptbJs8p/vHmBvqSTZgSBEoZbjIRUgnKZSPYvS/IaNCr8L8B5Kiseuqez212uLB7
C1D4obaSSZAD95JK7hcZxE9vVvZ5Q1YRkn6GcCwZU1BSFpuaqYU/96gjYd1IntruIM8tG172c6XjMuxG
y6y2a8kEKF9QIbA77uBJLd1KbWhEZzfbNdiNfkHrhJPsFH7n28io076H3XEH2psHhad8Iektv/WSA7sZ
DEG7a4bsrOjzrqbXaCNn9X3Ex/UjL1X1z62QNYAm7GYwijsvXyU7S7umrjMJ0xPYHXfAXDAnWQNowm4G
o6hj8jeyM9ECUwjdUyVd0zfIGoo7J4MCC9smQzI6CvuV1Br9i9gdd0CrVtbrWSdrKERnHOymCZIB391M
YvQD7I47UlGQ1Az4NsgaCo46J7CbwYCTGdkJRRxCH7vjDlQCv6E2DtlKazDNcCVGtRwlRzIhkYkaVos8
91aiNgYTNZMYe73q5OwamVTR4/0jvcH4FqbEDSzpWHJl70xIqavsn13LQI0zpmxhZ7OwhpoFqx67A6Ar
+LGArzBfgMaEPHeu2h7aLADYaElFP4S2W9WoFeKITSmYgvbKeAe0TPgxZqBj6PsoY6yS54R2C7RgShCb
DWub20smgxW2uWbRcj8H4qDZhKYTvxITUoS6Z/NbnB44iJHnC9uwAjgSU1MjTcsP7TmIg+f9EMgkzjya
pbDZdrT8gwt32GJzI6btBByaspWWSzsP6sHnWAXCyoE46dBiSN7bPDShuSMemgCZUn1SybHpCMfDvQuE
PQeflbpyYIKOy/OZhD4JUyODKTKwwt0q7EXgp/Wjr/EVFi0EBHXPgX2B5mKJjXxMjw6uyNReO+D7izoQ
GJ3ANKHmwEdVmhfg2gOajEPC4SQoX3yp+dt8lITLT8wsU1PJtpX3eBZZUsMRPFR0RBIHRicQLorgwggu
jkqPTy+gSddrT127R/cptw32HHxWjtjAxcNEB1x9ZSksN4uPT/0azlgS0zymBwCi6USEs4bBhX8hIHa9
52LFbgVCEoY8x5GME1GjdT8RSaD03NJmbc1ttrugQiSyEQ4ALszh4hyuTgSoO0d/PXno0JOjvqjlyYxy
iGJMfdDAYPwPx/igTWdlNegAAAAASUVORK5CYII=
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>84</value>
</metadata>

View File

@@ -1039,6 +1039,10 @@ namespace FPJ0000 {
private global::System.Data.DataColumn columnsfi;
private global::System.Data.DataColumn columnchamyeo;
private global::System.Data.DataColumn columnname2;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public ProjectsDataTable() :
@@ -1689,6 +1693,22 @@ namespace FPJ0000 {
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public global::System.Data.DataColumn chamyeoColumn {
get {
return this.columnchamyeo;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public global::System.Data.DataColumn name2Column {
get {
return this.columnname2;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
[global::System.ComponentModel.Browsable(false)]
@@ -1801,7 +1821,9 @@ namespace FPJ0000 {
int pno,
string kdate,
int jasmin,
double sfi) {
double sfi,
float chamyeo,
string name2) {
ProjectsRow rowProjectsRow = ((ProjectsRow)(this.NewRow()));
object[] columnValuesArray = new object[] {
null,
@@ -1879,7 +1901,9 @@ namespace FPJ0000 {
pno,
kdate,
jasmin,
sfi};
sfi,
chamyeo,
name2};
rowProjectsRow.ItemArray = columnValuesArray;
this.Rows.Add(rowProjectsRow);
return rowProjectsRow;
@@ -1961,7 +1985,9 @@ namespace FPJ0000 {
int pno,
string kdate,
int jasmin,
double sfi) {
double sfi,
float chamyeo,
string name2) {
ProjectsRow rowProjectsRow = ((ProjectsRow)(this.NewRow()));
object[] columnValuesArray = new object[] {
null,
@@ -2039,7 +2065,9 @@ namespace FPJ0000 {
pno,
kdate,
jasmin,
sfi};
sfi,
chamyeo,
name2};
rowProjectsRow.ItemArray = columnValuesArray;
this.Rows.Add(rowProjectsRow);
return rowProjectsRow;
@@ -2145,6 +2173,8 @@ namespace FPJ0000 {
this.columnkdate = base.Columns["kdate"];
this.columnjasmin = base.Columns["jasmin"];
this.columnsfi = base.Columns["sfi"];
this.columnchamyeo = base.Columns["chamyeo"];
this.columnname2 = base.Columns["name2"];
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@@ -2302,6 +2332,10 @@ namespace FPJ0000 {
base.Columns.Add(this.columnjasmin);
this.columnsfi = new global::System.Data.DataColumn("sfi", typeof(double), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnsfi);
this.columnchamyeo = new global::System.Data.DataColumn("chamyeo", typeof(float), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnchamyeo);
this.columnname2 = new global::System.Data.DataColumn("name2", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnname2);
this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] {
this.columnidx}, true));
this.columnidx.AutoIncrement = true;
@@ -12974,6 +13008,38 @@ namespace FPJ0000 {
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public float chamyeo {
get {
try {
return ((float)(this[this.tableProjects.chamyeoColumn]));
}
catch (global::System.InvalidCastException e) {
throw new global::System.Data.StrongTypingException("\'Projects\' 테이블의 \'chamyeo\' 열의 값이 DBNull입니다.", e);
}
}
set {
this[this.tableProjects.chamyeoColumn] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public string name2 {
get {
try {
return ((string)(this[this.tableProjects.name2Column]));
}
catch (global::System.InvalidCastException e) {
throw new global::System.Data.StrongTypingException("\'Projects\' 테이블의 \'name2\' 열의 값이 DBNull입니다.", e);
}
}
set {
this[this.tableProjects.name2Column] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public bool IsnameNull() {
@@ -13837,6 +13903,30 @@ namespace FPJ0000 {
public void SetsfiNull() {
this[this.tableProjects.sfiColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public bool IschamyeoNull() {
return this.IsNull(this.tableProjects.chamyeoColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public void SetchamyeoNull() {
this[this.tableProjects.chamyeoColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public bool Isname2Null() {
return this.IsNull(this.tableProjects.name2Column);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")]
public void Setname2Null() {
this[this.tableProjects.name2Column] = global::System.Convert.DBNull;
}
}
/// <summary>

View File

@@ -3392,6 +3392,8 @@ WHERE (idx = @idx)</CommandText>
</xs:element>
<xs:element name="jasmin" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="jasmin" msprop:Generator_ColumnVarNameInTable="columnjasmin" msprop:Generator_ColumnPropNameInTable="jasminColumn" msprop:Generator_UserColumnName="jasmin" type="xs:int" minOccurs="0" />
<xs:element name="sfi" msprop:nullValue="0.0" msprop:Generator_ColumnPropNameInRow="sfi" msprop:Generator_ColumnVarNameInTable="columnsfi" msprop:Generator_ColumnPropNameInTable="sfiColumn" msprop:Generator_UserColumnName="sfi" type="xs:double" minOccurs="0" />
<xs:element name="chamyeo" msprop:Generator_ColumnVarNameInTable="columnchamyeo" msprop:Generator_ColumnPropNameInRow="chamyeo" msprop:Generator_ColumnPropNameInTable="chamyeoColumn" msprop:Generator_UserColumnName="chamyeo" type="xs:float" minOccurs="0" />
<xs:element name="name2" msprop:Generator_ColumnVarNameInTable="columnname2" msprop:Generator_ColumnPropNameInRow="name2" msprop:Generator_ColumnPropNameInTable="name2Column" msprop:Generator_UserColumnName="name2" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>

View File

@@ -6,7 +6,7 @@
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="247" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:Projects" ZOrder="5" X="388" Y="651" Height="381" Width="229" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Projects" ZOrder="5" X="388" Y="651" Height="381" Width="261" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectsIOMap" ZOrder="12" X="366" Y="70" Height="229" Width="231" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:ProjectsMailList" ZOrder="19" X="667" Y="70" Height="248" Width="237" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:ProjectsPart" ZOrder="1" X="973" Y="68" Height="343" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />