This commit is contained in:
backuppc
2025-12-05 17:33:12 +09:00
parent 8e8d1f91b4
commit 77f1ddab80
92 changed files with 4878 additions and 20435 deletions

View File

@@ -173,9 +173,21 @@
<Reference Include="Microsoft.Web.WebView2.Wpf, Version=1.0.2210.55, Culture=neutral, PublicKeyToken=2a8ab48044d2601e, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.WebView2.1.0.2210.55\lib\net45\Microsoft.Web.WebView2.Wpf.dll</HintPath>
</Reference>
<Reference Include="NetOffice, Version=1.8.1.0, Culture=neutral, PublicKeyToken=297f57b43ae7c1de, processorArchitecture=MSIL">
<HintPath>..\packages\NetOfficeFw.Core.1.8.1\lib\net40\NetOffice.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="OfficeApi, Version=1.8.1.0, Culture=neutral, PublicKeyToken=a39beb0835c43c8e, processorArchitecture=MSIL">
<HintPath>..\packages\NetOfficeFw.Core.1.8.1\lib\net40\OfficeApi.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="OutlookApi, Version=1.8.1.0, Culture=neutral, PublicKeyToken=b118031aaa1097f3, processorArchitecture=MSIL">
<HintPath>..\packages\NetOfficeFw.Outlook.1.8.1\lib\net40\OutlookApi.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="System">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll</HintPath>
</Reference>
@@ -214,6 +226,10 @@
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="VBIDEApi, Version=1.8.1.0, Culture=neutral, PublicKeyToken=931cec8882205047, processorArchitecture=MSIL">
<HintPath>..\packages\NetOfficeFw.Core.1.8.1\lib\net40\VBIDEApi.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="Winsock Orcas">
<HintPath>..\DLL\Winsock Orcas.dll</HintPath>
@@ -369,6 +385,8 @@
<Compile Include="Web\MachineBridge\MachineBridge.Customs.cs" />
<Compile Include="Web\MachineBridge\MachineBridge.UserGroup.cs" />
<Compile Include="Web\MachineBridge\MachineBridge.UserAuth.cs" />
<Compile Include="Web\MachineBridge\MachineBridge.License.cs" />
<Compile Include="Web\MachineBridge\MachineBridge.PartList.cs" />
<Compile Include="Web\MachineBridge\WebSocketServer.cs" />
<Compile Include="Web\Model\PageModel.cs" />
<Compile Include="Web\Model\ProjectModel.cs" />

View File

@@ -9,7 +9,7 @@
<ErrorReportUrlHistory />
<FallbackCulture>ko-KR</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>

View File

@@ -0,0 +1,320 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.IO;
using System.Text;
using Newtonsoft.Json;
using FCOMMON;
namespace Project.Web
{
public partial class MachineBridge
{
/// <summary>
/// 라이선스 목록 조회
/// </summary>
public string License_GetList()
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
SELECT
idx, gcode, expire, name, Version, MeterialNo, Supply, qty,
uids, SerialNo, Remark, sdate, edate, manu, wuid, wdate
FROM EETGW_License WITH (nolock)
WHERE gcode = @gcode
ORDER BY expire DESC, name, sdate", conn);
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
var list = new List<object>();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(new
{
idx = reader.GetInt32(0),
gcode = reader.IsDBNull(1) ? "" : reader.GetString(1),
expire = !reader.IsDBNull(2) && reader.GetBoolean(2),
name = reader.IsDBNull(3) ? "" : reader.GetString(3),
version = reader.IsDBNull(4) ? "" : reader.GetString(4),
meterialNo = reader.IsDBNull(5) ? "" : reader.GetString(5),
supply = reader.IsDBNull(6) ? "" : reader.GetString(6),
qty = reader.IsDBNull(7) ? 0 : reader.GetInt32(7),
uids = reader.IsDBNull(8) ? "" : reader.GetString(8),
serialNo = reader.IsDBNull(9) ? "" : reader.GetString(9),
remark = reader.IsDBNull(10) ? "" : reader.GetString(10),
sdate = reader.IsDBNull(11) ? "" : reader.GetString(11),
edate = reader.IsDBNull(12) ? "" : reader.GetString(12),
manu = reader.IsDBNull(13) ? "" : reader.GetString(13),
wuid = reader.IsDBNull(14) ? "" : reader.GetString(14),
wdate = reader.IsDBNull(15) ? "" : reader.GetDateTime(15).ToString("yyyy-MM-dd HH:mm:ss")
});
}
}
return JsonConvert.SerializeObject(new { Success = true, Data = list });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "라이선스 목록 조회 중 오류가 발생했습니다: " + ex.Message });
}
}
/// <summary>
/// 라이선스 추가
/// </summary>
public string License_Add(string name, string version, string meterialNo, string supply,
int qty, string uids, string serialNo, string remark, string sdate, string edate,
string manu, bool expire)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
INSERT INTO EETGW_License
(gcode, expire, name, manu, Supply, qty, uids, sdate, edate, Remark, wuid, wdate, Version, SerialNo, MeterialNo)
VALUES
(@gcode, @expire, @name, @manu, @Supply, @qty, @uids, @sdate, @edate, @Remark, @wuid, @wdate, @Version, @SerialNo, @MeterialNo);
SELECT SCOPE_IDENTITY();", conn);
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
cmd.Parameters.Add("@expire", SqlDbType.Bit).Value = expire;
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = name ?? "";
cmd.Parameters.Add("@manu", SqlDbType.NVarChar).Value = manu ?? "";
cmd.Parameters.Add("@Supply", SqlDbType.NVarChar).Value = supply ?? "";
cmd.Parameters.Add("@qty", SqlDbType.Int).Value = qty;
cmd.Parameters.Add("@uids", SqlDbType.NVarChar).Value = uids ?? "";
cmd.Parameters.Add("@sdate", SqlDbType.VarChar).Value = string.IsNullOrEmpty(sdate) ? DateTime.Now.ToString("yyyy-MM-dd") : sdate;
cmd.Parameters.Add("@edate", SqlDbType.VarChar).Value = (object)edate ?? DBNull.Value;
cmd.Parameters.Add("@Remark", SqlDbType.NVarChar).Value = remark ?? "";
cmd.Parameters.Add("@wuid", SqlDbType.VarChar).Value = info.Login.no;
cmd.Parameters.Add("@wdate", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@Version", SqlDbType.NVarChar).Value = version ?? "";
cmd.Parameters.Add("@SerialNo", SqlDbType.NVarChar).Value = serialNo ?? "";
cmd.Parameters.Add("@MeterialNo", SqlDbType.NVarChar).Value = meterialNo ?? "";
var idx = Convert.ToInt32(cmd.ExecuteScalar());
return JsonConvert.SerializeObject(new { Success = true, Message = "라이선스가 추가되었습니다.", Data = new { idx } });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "라이선스 추가 중 오류가 발생했습니다: " + ex.Message });
}
}
/// <summary>
/// 라이선스 수정
/// </summary>
public string License_Update(int idx, string name, string version, string meterialNo,
string supply, int qty, string uids, string serialNo, string remark, string sdate,
string edate, string manu, bool expire)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
UPDATE EETGW_License SET
expire = @expire, name = @name, manu = @manu, Supply = @Supply,
qty = @qty, uids = @uids, sdate = @sdate, edate = @edate,
Remark = @Remark, wuid = @wuid, wdate = @wdate,
Version = @Version, SerialNo = @SerialNo, MeterialNo = @MeterialNo
WHERE idx = @idx AND gcode = @gcode", conn);
cmd.Parameters.Add("@idx", SqlDbType.Int).Value = idx;
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
cmd.Parameters.Add("@expire", SqlDbType.Bit).Value = expire;
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = name ?? "";
cmd.Parameters.Add("@manu", SqlDbType.NVarChar).Value = manu ?? "";
cmd.Parameters.Add("@Supply", SqlDbType.NVarChar).Value = supply ?? "";
cmd.Parameters.Add("@qty", SqlDbType.Int).Value = qty;
cmd.Parameters.Add("@uids", SqlDbType.NVarChar).Value = uids ?? "";
cmd.Parameters.Add("@sdate", SqlDbType.VarChar).Value = string.IsNullOrEmpty(sdate) ? DateTime.Now.ToString("yyyy-MM-dd") : sdate;
cmd.Parameters.Add("@edate", SqlDbType.VarChar).Value = (object)edate ?? DBNull.Value;
cmd.Parameters.Add("@Remark", SqlDbType.NVarChar).Value = remark ?? "";
cmd.Parameters.Add("@wuid", SqlDbType.VarChar).Value = info.Login.no;
cmd.Parameters.Add("@wdate", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@Version", SqlDbType.NVarChar).Value = version ?? "";
cmd.Parameters.Add("@SerialNo", SqlDbType.NVarChar).Value = serialNo ?? "";
cmd.Parameters.Add("@MeterialNo", SqlDbType.NVarChar).Value = meterialNo ?? "";
var cnt = cmd.ExecuteNonQuery();
return JsonConvert.SerializeObject(new { Success = true, Message = "라이선스가 수정되었습니다.", Data = new { UpdatedCount = cnt } });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "라이선스 수정 중 오류가 발생했습니다: " + ex.Message });
}
}
/// <summary>
/// 라이선스 삭제
/// </summary>
public string License_Delete(int idx)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
DELETE FROM EETGW_License
WHERE idx = @idx AND gcode = @gcode", conn);
cmd.Parameters.Add("@idx", SqlDbType.Int).Value = idx;
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
var cnt = cmd.ExecuteNonQuery();
return JsonConvert.SerializeObject(new { Success = true, Message = "라이선스가 삭제되었습니다.", Data = new { DeletedCount = cnt } });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "라이선스 삭제 중 오류가 발생했습니다: " + ex.Message });
}
}
/// <summary>
/// 라이선스 폴더 열기
/// </summary>
public string License_OpenFolder(int idx)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var serverpath = DBM.getCodeSvalue("55", "01");
if (string.IsNullOrEmpty(serverpath) || !Directory.Exists(serverpath))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "프로젝트 기본경로가 존재하지 않습니다.\\n\\n공용정보->공용코드->55-01 데이터를 설정 하시기 바랍니다." });
}
var folderPath = Path.Combine(serverpath, "Data", "License", idx.ToString());
// 폴더가 없으면 생성
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
// 탐색기로 폴더 열기
Process.Start("explorer.exe", folderPath);
return JsonConvert.SerializeObject(new { Success = true, Message = "폴더를 열었습니다.", Data = new { Path = folderPath } });
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "폴더 열기 중 오류가 발생했습니다: " + ex.Message });
}
}
/// <summary>
/// CSV로 내보내기
/// </summary>
public string License_ExportCSV(string filePath)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
SELECT
idx, expire, name, Version, MeterialNo, Supply, qty,
uids, SerialNo, Remark, sdate, edate, manu
FROM EETGW_License WITH (nolock)
WHERE gcode = @gcode
ORDER BY expire DESC, name, sdate", conn);
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
var sb = new StringBuilder();
sb.AppendLine("idx,expire,name,Version,MeterialNo,Supply,qty,uids,SerialNo,Remark,sdate,edate,manu");
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var values = new List<string>();
for (int i = 0; i < reader.FieldCount; i++)
{
var value = reader.IsDBNull(i) ? "" : reader.GetValue(i).ToString();
// CSV 이스케이프 처리
if (value.Contains(",") || value.Contains("\"") || value.Contains("\n"))
{
value = "\"" + value.Replace("\"", "\"\"") + "\"";
}
values.Add(value);
}
sb.AppendLine(string.Join(",", values));
}
}
File.WriteAllText(filePath, sb.ToString(), Encoding.UTF8);
return JsonConvert.SerializeObject(new { Success = true, Message = "CSV 파일이 생성되었습니다.", Data = new { Path = filePath } });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = "CSV 내보내기 중 오류가 발생했습니다: " + ex.Message });
}
}
}
}

View File

@@ -5,6 +5,9 @@ using System.Data;
using System.Data.SqlClient;
using System.Linq;
using FCOMMON;
using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;
namespace Project.Web
{
@@ -71,5 +74,164 @@ namespace Project.Web
return JsonConvert.SerializeObject(new { Success = false, Message = ex.Message });
}
}
/// <summary>
/// 메일 데이터 추가 (발송 대기열)
/// </summary>
public string Mail_AddData(string cate, string subject, string fromlist, string tolist, string cc, string bcc, string body)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
INSERT INTO MailData
(gcode, cate, pdate, subject, fromlist, tolist, cc, bcc, body, SendOK, wuid, wdate)
VALUES
(@gcode, @cate, @pdate, @subject, @fromlist, @tolist, @cc, @bcc, @body, 0, @wuid, GETDATE())", conn);
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
cmd.Parameters.Add("@cate", SqlDbType.VarChar).Value = cate ?? "";
cmd.Parameters.Add("@pdate", SqlDbType.VarChar).Value = DateTime.Now.ToString("yyyy-MM-dd");
cmd.Parameters.Add("@subject", SqlDbType.VarChar).Value = subject ?? "";
cmd.Parameters.Add("@fromlist", SqlDbType.VarChar).Value = fromlist ?? "";
cmd.Parameters.Add("@tolist", SqlDbType.VarChar).Value = tolist ?? "";
cmd.Parameters.Add("@cc", SqlDbType.VarChar).Value = cc ?? "";
cmd.Parameters.Add("@bcc", SqlDbType.VarChar).Value = bcc ?? "";
cmd.Parameters.Add("@body", SqlDbType.VarChar).Value = body ?? "";
cmd.Parameters.Add("@wuid", SqlDbType.VarChar).Value = info.Login.no;
int affected = cmd.ExecuteNonQuery();
if (affected > 0)
{
return JsonConvert.SerializeObject(new { Success = true, Message = "메일이 발송 대기열에 추가되었습니다." });
}
else
{
return JsonConvert.SerializeObject(new { Success = false, Message = "메일 등록에 실패했습니다." });
}
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = ex.Message });
}
}
/// <summary>
/// 메일 직접 발송 (SMTP)
/// </summary>
public string Mail_SendDirect(string cate, string subject, string fromlist, string tolist, string cc, string bcc, string body)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
// SMTP 직접 발송
var mailserver = info.mailserver ?? "scwa.amkor.co.kr";
var mc = new System.Net.Mail.SmtpClient(mailserver);
var msg = new System.Net.Mail.MailMessage(
string.IsNullOrEmpty(fromlist) ? "gw@amkor.co.kr" : fromlist,
tolist,
subject,
body
);
if (!string.IsNullOrEmpty(bcc)) msg.Bcc.Add(bcc);
if (!string.IsNullOrEmpty(cc)) msg.CC.Add(cc);
msg.IsBodyHtml = true;
mc.Send(msg);
// 발송 성공 시 MailData에도 저장 (SendOK=1)
var connStr = Project.Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
INSERT INTO MailData
(gcode, cate, pdate, subject, fromlist, tolist, cc, bcc, body, SendOK, SendMsg, wuid, wdate, suid, sdate)
VALUES
(@gcode, @cate, @pdate, @subject, @fromlist, @tolist, @cc, @bcc, @body, 1, @SendMsg, @wuid, GETDATE(), @wuid, GETDATE())", conn);
cmd.Parameters.Add("@gcode", SqlDbType.VarChar).Value = info.Login.gcode;
cmd.Parameters.Add("@cate", SqlDbType.VarChar).Value = cate ?? "";
cmd.Parameters.Add("@pdate", SqlDbType.VarChar).Value = DateTime.Now.ToString("yyyy-MM-dd");
cmd.Parameters.Add("@subject", SqlDbType.VarChar).Value = subject ?? "";
cmd.Parameters.Add("@fromlist", SqlDbType.VarChar).Value = string.IsNullOrEmpty(fromlist) ? "gw@amkor.co.kr" : fromlist;
cmd.Parameters.Add("@tolist", SqlDbType.VarChar).Value = tolist ?? "";
cmd.Parameters.Add("@cc", SqlDbType.VarChar).Value = cc ?? "";
cmd.Parameters.Add("@bcc", SqlDbType.VarChar).Value = bcc ?? "";
cmd.Parameters.Add("@body", SqlDbType.VarChar).Value = body ?? "";
cmd.Parameters.Add("@SendMsg", SqlDbType.VarChar).Value = "Direct Send";
cmd.Parameters.Add("@wuid", SqlDbType.VarChar).Value = info.Login.no;
cmd.ExecuteNonQuery();
}
return JsonConvert.SerializeObject(new { Success = true, Message = "메일이 발송되었습니다." });
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = $"메일 발송 실패: {ex.Message}" });
}
}
/// <summary>
/// Outlook으로 메일 미리보기/발송
/// </summary>
public string Mail_SendOutlook(string subject, string _tolist, string cc, string bcc, string body)
{
try
{
if (string.IsNullOrEmpty(info.Login.no) || string.IsNullOrEmpty(info.Login.gcode))
{
return JsonConvert.SerializeObject(new { Success = false, Message = "로그인이 필요합니다." });
}
// Outlook COM 객체 생성
var tolist = new string[] { "Chikyun.kim@amkor.co.kr" }; //dr.tolist.Split(',');
Outlook.Application outlookApplication = new Outlook.Application();
foreach (var to in tolist)
{
if (to.isEmpty()) continue;
var newMail = outlookApplication.CreateItem(OlItemType.olMailItem) as Outlook.MailItem;
newMail.Display();
newMail.Subject = subject.Trim(); // dr.title;
newMail.To = to;
newMail.CC = cc;
newMail.BCC = bcc;
// newMail.BodyFormat = OlBodyFormat.olFormatHTML;
newMail.HTMLBody = body
.Replace("{USER}", FCOMMON.info.Login.nameK)
.Replace("{EUSER}", FCOMMON.info.Login.nameE)
.Replace("{EMAIL}", FCOMMON.info.Login.email)
.Replace("%7BEMAIL%7D", FCOMMON.info.Login.email)
.Replace("{HP}", FCOMMON.info.Login.hp)
.Replace("{TEL}", FCOMMON.info.Login.tel)
.Replace("{ITEM}", subject) + newMail.HTMLBody;
}
return JsonConvert.SerializeObject(new { Success = true, Message = "Outlook 메일 창이 열렸습니다." });
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = $"Outlook 실행 실패: {ex.Message}" });
}
}
}
}

View File

@@ -0,0 +1,247 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using Newtonsoft.Json;
using FCOMMON;
namespace Project.Web
{
public partial class MachineBridge
{
/// <summary>
/// 프로젝트별 파트리스트 조회
/// </summary>
public string PartList_GetList(int projectIdx)
{
try
{
var connStr = Properties.Settings.Default.CS;
using (var conn = new SqlConnection(connStr))
{
conn.Open();
var cmd = new SqlCommand(@"
SELECT
idx, no, Project, ItemGroup, ItemModel, ItemUnit, ItemName,
ItemSid, ItemSupply, ItemSupplyidx, ItemManu, Item,
option1, qty, qtyn, price, amt, remark, qtybuy
FROM ProjectsPart
WHERE Project = @ProjectIdx
ORDER BY ItemGroup, option1, no, ItemName
", conn);
cmd.Parameters.Add("@ProjectIdx", SqlDbType.Int).Value = projectIdx;
var list = new List<object>();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(new
{
idx = reader.GetInt32(0),
no = reader.IsDBNull(1) ? 0 : reader.GetInt32(1),
Project = reader.GetInt32(2),
itemgroup = reader.IsDBNull(3) ? "" : reader.GetString(3),
itemmodel = reader.IsDBNull(4) ? "" : reader.GetString(4),
itemunit = reader.IsDBNull(5) ? "" : reader.GetString(5),
itemname = reader.IsDBNull(6) ? "" : reader.GetString(6),
itemsid = reader.IsDBNull(7) ? "" : reader.GetString(7),
itemsupply = reader.IsDBNull(8) ? "" : reader.GetString(8),
itemsupplyidx = reader.IsDBNull(9) ? 0 : reader.GetInt32(9),
itemmanu = reader.IsDBNull(10) ? "" : reader.GetString(10),
item = reader.IsDBNull(11) ? "" : reader.GetInt32(11).ToString(),
option1 = reader.IsDBNull(12) ? "" : reader.GetString(12),
qty = reader.IsDBNull(13) ? 0 : reader.GetInt32(13),
qtyn = reader.IsDBNull(14) ? 0 : reader.GetInt32(14),
price = reader.IsDBNull(15) ? 0.0 : (double)reader.GetDecimal(15),
amt = reader.IsDBNull(16) ? 0.0 : (double)reader.GetDecimal(16),
remark = reader.IsDBNull(17) ? "" : reader.GetString(17),
qtybuy = reader.IsDBNull(18) ? 0 : reader.GetInt32(18)
});
}
} var result = new
{
Success = true,
Data = list
};
return JsonConvert.SerializeObject(result);
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new
{
Success = false,
Message = "파트리스트 조회 실패: " + ex.Message
});
}
}
/// <summary>
/// 파트리스트 항목 저장 (추가/수정)
/// </summary>
public string PartList_Save(
int idx,
int projectIdx,
string itemgroup,
string itemname,
string item,
string itemmodel,
string itemscale,
string itemunit,
double qty,
double price,
string itemsupply,
int itemsupplyidx,
string itemmanu,
string itemsid,
string option1,
string remark,
int no,
double qtybuy)
{
try
{
var connStr = Properties.Settings.Default.CS;
using (var con = new SqlConnection(connStr))
{
con.Open();
if (idx == 0 || idx == -1) // 새로 추가
{
using (var cmd = new SqlCommand(@"
INSERT INTO ProjectsPart (
Project, ItemGroup, ItemName, Item, ItemModel,
ItemUnit, Qty, Price, ItemSupply,
ItemSupplyIdx, ItemManu, ItemSid, option1,
remark, no, qtybuy, wuid, wdate
) VALUES (
@Project, @ItemGroup, @ItemName, @Item, @ItemModel,
@ItemUnit, @Qty, @Price, @ItemSupply,
@ItemSupplyIdx, @ItemManu, @ItemSid, @option1,
@remark, @no, @qtybuy, @wuid, @wdate
)
", con))
{
cmd.Parameters.AddWithValue("@Project", projectIdx);
cmd.Parameters.AddWithValue("@ItemGroup", itemgroup ?? "");
cmd.Parameters.AddWithValue("@ItemName", itemname ?? "");
cmd.Parameters.AddWithValue("@Item", item ?? "");
cmd.Parameters.AddWithValue("@ItemModel", itemmodel ?? "");
cmd.Parameters.AddWithValue("@ItemUnit", itemunit ?? "");
cmd.Parameters.AddWithValue("@Qty", qty);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@ItemSupply", itemsupply ?? "");
cmd.Parameters.AddWithValue("@ItemSupplyIdx", itemsupplyidx);
cmd.Parameters.AddWithValue("@ItemManu", itemmanu ?? "");
cmd.Parameters.AddWithValue("@ItemSid", itemsid ?? "");
cmd.Parameters.AddWithValue("@option1", option1 ?? "");
cmd.Parameters.AddWithValue("@remark", remark ?? "");
cmd.Parameters.AddWithValue("@no", no);
cmd.Parameters.AddWithValue("@qtybuy", qtybuy);
cmd.Parameters.AddWithValue("@wuid", info.Login.no);
cmd.Parameters.AddWithValue("@wdate", DateTime.Now);
cmd.ExecuteNonQuery();
}
}
else // 수정
{
using (var cmd = new SqlCommand(@"
UPDATE ProjectsPart SET
ItemGroup = @ItemGroup,
ItemName = @ItemName,
Item = @Item,
ItemModel = @ItemModel,
ItemUnit = @ItemUnit,
Qty = @Qty,
Price = @Price,
ItemSupply = @ItemSupply,
ItemSupplyIdx = @ItemSupplyIdx,
ItemManu = @ItemManu,
ItemSid = @ItemSid,
option1 = @option1,
remark = @remark,
no = @no,
qtybuy = @qtybuy
WHERE idx = @idx
", con))
{
cmd.Parameters.AddWithValue("@idx", idx);
cmd.Parameters.AddWithValue("@ItemGroup", itemgroup ?? "");
cmd.Parameters.AddWithValue("@ItemName", itemname ?? "");
cmd.Parameters.AddWithValue("@Item", item ?? "");
cmd.Parameters.AddWithValue("@ItemModel", itemmodel ?? "");
cmd.Parameters.AddWithValue("@ItemUnit", itemunit ?? "");
cmd.Parameters.AddWithValue("@Qty", qty);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@ItemSupply", itemsupply ?? "");
cmd.Parameters.AddWithValue("@ItemSupplyIdx", itemsupplyidx);
cmd.Parameters.AddWithValue("@ItemManu", itemmanu ?? "");
cmd.Parameters.AddWithValue("@ItemSid", itemsid ?? "");
cmd.Parameters.AddWithValue("@option1", option1 ?? "");
cmd.Parameters.AddWithValue("@remark", remark ?? "");
cmd.Parameters.AddWithValue("@no", no);
cmd.Parameters.AddWithValue("@qtybuy", qtybuy);
cmd.ExecuteNonQuery();
}
}
return JsonConvert.SerializeObject(new
{
Success = true,
Message = "저장되었습니다."
});
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new
{
Success = false,
Message = "저장 실패: " + ex.Message
});
}
}
/// <summary>
/// 파트리스트 항목 삭제
/// </summary>
public string PartList_Delete(int idx)
{
try
{
var connStr = Properties.Settings.Default.CS;
using (var con = new SqlConnection(connStr))
{
con.Open();
var cmd = new SqlCommand(@"
DELETE FROM ProjectsPart WHERE idx = @idx
", con);
cmd.Parameters.Add("@idx", SqlDbType.Int).Value = idx;
cmd.ExecuteNonQuery();
return JsonConvert.SerializeObject(new
{
Success = true,
Message = "삭제되었습니다."
});
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new
{
Success = false,
Message = "삭제 실패: " + ex.Message
});
}
}
}
}

View File

@@ -606,6 +606,64 @@ namespace Project.Web
}
}
/// <summary>
/// 프로젝트 히스토리 저장
/// </summary>
public string Project_SaveHistory(int idx, int pidx, string pdate, int progress, string remark)
{
try
{
var cs = Properties.Settings.Default.gwcs;
using (var cn = new SqlConnection(cs))
{
cn.Open();
string sql;
if (idx > 0)
{
// 수정
sql = @"UPDATE ProjectsHistory
SET remark = @remark, progress = @progress, wdate = GETDATE(), wuid = @wuid
WHERE idx = @idx";
}
else
{
// 신규 등록
sql = @"INSERT INTO ProjectsHistory (pidx, pdate, progress, remark, wuid, wdate)
VALUES (@pidx, @pdate, @progress, @remark, @wuid, GETDATE())";
}
using (var cmd = new SqlCommand(sql, cn))
{
if (idx > 0)
{
cmd.Parameters.AddWithValue("@idx", idx);
}
cmd.Parameters.AddWithValue("@pidx", pidx);
cmd.Parameters.AddWithValue("@pdate", pdate);
cmd.Parameters.AddWithValue("@progress", progress);
cmd.Parameters.AddWithValue("@remark", remark ?? "");
cmd.Parameters.AddWithValue("@wuid", info.Login.no);
int affected = cmd.ExecuteNonQuery();
if (affected > 0)
{
return JsonConvert.SerializeObject(new { Success = true, Message = "저장되었습니다." });
}
else
{
return JsonConvert.SerializeObject(new { Success = false, Message = "저장에 실패했습니다." });
}
}
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new { Success = false, Message = ex.Message });
}
}
/// <summary>
/// 프로젝트 일일 메모 조회
/// </summary>

View File

@@ -101,12 +101,27 @@ namespace Project.Web
{
try
{
var productVersion = Application.ProductVersion;
var maxVersion = DBM.GetMaxVersion();
var hasNewVersion = false;
if (!string.IsNullOrEmpty(maxVersion))
{
var verchk = productVersion.CompareTo(maxVersion);
if (verchk < 0)
{
hasNewVersion = true;
}
}
return JsonConvert.SerializeObject(new
{
Success = true,
ProductName = Application.ProductName,
ProductVersion = Application.ProductVersion,
DisplayVersion = $"{Application.ProductName} v{Application.ProductVersion}"
ProductVersion = productVersion,
DisplayVersion = $"{Application.ProductName} v{productVersion}",
MaxVersion = maxVersion,
HasNewVersion = hasNewVersion
});
}
catch (Exception ex)

View File

@@ -986,6 +986,171 @@ namespace Project.Web
}
break;
case "MAIL_ADD_DATA":
{
string cate = json.cate ?? "";
string subject = json.subject ?? "";
string fromlist = json.fromlist ?? "";
string tolist = json.tolist ?? "";
string cc = json.cc ?? "";
string bcc = json.bcc ?? "";
string body = json.body ?? "";
string result = _bridge.Mail_AddData(cate, subject, fromlist, tolist, cc, bcc, body);
var response = new { type = "MAIL_ADD_DATA_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "MAIL_SEND_DIRECT":
{
string cate = json.cate ?? "";
string subject = json.subject ?? "";
string fromlist = json.fromlist ?? "";
string tolist = json.tolist ?? "";
string cc = json.cc ?? "";
string bcc = json.bcc ?? "";
string body = json.body ?? "";
string result = _bridge.Mail_SendDirect(cate, subject, fromlist, tolist, cc, bcc, body);
var response = new { type = "MAIL_SEND_DIRECT_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "MAIL_SEND_OUTLOOK":
{
string subject = json.subject ?? "";
string tolist = json.tolist ?? "";
string cc = json.cc ?? "";
string bcc = json.bcc ?? "";
string body = json.body ?? "";
string result = _bridge.Mail_SendOutlook(subject, tolist, cc, bcc, body);
var response = new { type = "MAIL_SEND_OUTLOOK_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
// ===== License API (라이선스 관리) =====
case "LICENSE_GET_LIST":
{
string result = _bridge.License_GetList();
var response = new { type = "LICENSE_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "LICENSE_ADD":
{
string name = json.name ?? "";
string version = json.version ?? "";
string meterialNo = json.meterialNo ?? "";
string supply = json.supply ?? "";
int qty = json.qty ?? 0;
string uids = json.uids ?? "";
string serialNo = json.serialNo ?? "";
string remark = json.remark ?? "";
string sdate = json.sdate ?? "";
string edate = json.edate ?? "";
string manu = json.manu ?? "";
bool expire = json.expire ?? false;
string result = _bridge.License_Add(name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire);
var response = new { type = "LICENSE_ADD_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "LICENSE_UPDATE":
{
int idx = json.idx ?? 0;
string name = json.name ?? "";
string version = json.version ?? "";
string meterialNo = json.meterialNo ?? "";
string supply = json.supply ?? "";
int qty = json.qty ?? 0;
string uids = json.uids ?? "";
string serialNo = json.serialNo ?? "";
string remark = json.remark ?? "";
string sdate = json.sdate ?? "";
string edate = json.edate ?? "";
string manu = json.manu ?? "";
bool expire = json.expire ?? false;
string result = _bridge.License_Update(idx, name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire);
var response = new { type = "LICENSE_UPDATE_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "LICENSE_DELETE":
{
int idx = json.idx ?? 0;
string result = _bridge.License_Delete(idx);
var response = new { type = "LICENSE_DELETE_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "LICENSE_OPEN_FOLDER":
{
int idx = json.idx ?? 0;
string result = _bridge.License_OpenFolder(idx);
var response = new { type = "LICENSE_OPEN_FOLDER_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "LICENSE_EXPORT_CSV":
{
string filePath = json.filePath ?? "";
string result = _bridge.License_ExportCSV(filePath);
var response = new { type = "LICENSE_EXPORT_CSV_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
// ===== PartList API (파트리스트) =====
case "PARTLIST_GET_LIST":
{
int projectIdx = json.projectIdx ?? 0;
string result = _bridge.PartList_GetList(projectIdx);
var response = new { type = "PARTLIST_LIST_DATA", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "PARTLIST_SAVE":
{
int idx = json.idx ?? 0;
int projectIdx = json.projectIdx ?? 0;
string itemgroup = json.itemgroup ?? "";
string itemname = json.itemname ?? "";
string item = json.item ?? "";
string itemmodel = json.itemmodel ?? "";
string itemscale = json.itemscale ?? "";
string itemunit = json.itemunit ?? "";
double qty = json.qty ?? 0.0;
double price = json.price ?? 0.0;
string itemsupply = json.itemsupply ?? "";
int itemsupplyidx = json.itemsupplyidx ?? 0;
string itemmanu = json.itemmanu ?? "";
string itemsid = json.itemsid ?? "";
string option1 = json.option1 ?? "";
string remark = json.remark ?? "";
int no = json.no ?? 0;
double qtybuy = json.qtybuy ?? 0.0;
string result = _bridge.PartList_Save(idx, projectIdx, itemgroup, itemname, item, itemmodel, itemscale, itemunit, qty, price, itemsupply, itemsupplyidx, itemmanu, itemsid, option1, remark, no, qtybuy);
var response = new { type = "PARTLIST_SAVE_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "PARTLIST_DELETE":
{
int idx = json.idx ?? 0;
string result = _bridge.PartList_Delete(idx);
var response = new { type = "PARTLIST_DELETE_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
// ===== Customs API (업체정보) =====
case "CUSTOMS_GET_LIST":
{
@@ -1295,6 +1460,19 @@ namespace Project.Web
}
break;
case "PROJECT_SAVE_HISTORY":
{
int idx = json.idx ?? 0;
int pidx = json.pidx ?? 0;
string pdate = json.pdate ?? "";
int progress = json.progress ?? 0;
string remark = json.remark ?? "";
string result = _bridge.Project_SaveHistory(idx, pidx, pdate, progress, remark);
var response = new { type = "PROJECT_SAVE_HISTORY_RESULT", data = JsonConvert.DeserializeObject(result) };
await Send(socket, JsonConvert.SerializeObject(response));
}
break;
case "PROJECT_GET_DAILY_MEMO":
{
int projectIdx = json.projectIdx ?? 0;

View File

@@ -3,26 +3,16 @@
<configSections>
</configSections>
<connectionStrings>
<add name="Project.Properties.Settings.gwcs" connectionString="Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True"
providerName="System.Data.SqlClient" />
<add name="EEEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="EEEntities1" connectionString="metadata=res://*/ModelMain.csdl|res://*/ModelMain.ssdl|res://*/ModelMain.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;connect timeout=30;encrypt=False;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
providerName="System.Data.EntityClient" />
<add name="EEEntitiesMain" connectionString="metadata=res://*/AdoNetEFMain.csdl|res://*/AdoNetEFMain.ssdl|res://*/AdoNetEFMain.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;connect timeout=30;encrypt=False;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
providerName="System.Data.EntityClient" />
<add name="S1ACCESS300Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=10.141.18.50;initial catalog=S1ACCESS300;persist security info=True;user id=amkoruser;password=AmkorUser!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="EEEntitiesPurchase" connectionString="metadata=res://*/ModelPurchase.csdl|res://*/ModelPurchase.ssdl|res://*/ModelPurchase.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="EEEntitiesCommon" connectionString="metadata=res://*/ModelCommon.csdl|res://*/ModelCommon.ssdl|res://*/ModelCommon.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="EEEntitiesJobreport" connectionString="metadata=res://*/ModelJobreport.csdl|res://*/ModelJobreport.ssdl|res://*/ModelJobreport.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="EEEntitiesProject" connectionString="metadata=res://*/ModelProject.csdl|res://*/ModelProject.ssdl|res://*/ModelProject.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True"
providerName="System.Data.EntityClient" />
<add name="Project.Properties.Settings.CS" connectionString="Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True"
providerName="System.Data.SqlClient" />
<add name="Project.Properties.Settings.gwcs" connectionString="Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True" providerName="System.Data.SqlClient" />
<add name="EEEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="EEEntities1" connectionString="metadata=res://*/ModelMain.csdl|res://*/ModelMain.ssdl|res://*/ModelMain.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;connect timeout=30;encrypt=False;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
<add name="EEEntitiesMain" connectionString="metadata=res://*/AdoNetEFMain.csdl|res://*/AdoNetEFMain.ssdl|res://*/AdoNetEFMain.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;connect timeout=30;encrypt=False;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
<add name="S1ACCESS300Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=10.141.18.50;initial catalog=S1ACCESS300;persist security info=True;user id=amkoruser;password=AmkorUser!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="EEEntitiesPurchase" connectionString="metadata=res://*/ModelPurchase.csdl|res://*/ModelPurchase.ssdl|res://*/ModelPurchase.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="EEEntitiesCommon" connectionString="metadata=res://*/ModelCommon.csdl|res://*/ModelCommon.ssdl|res://*/ModelCommon.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="EEEntitiesJobreport" connectionString="metadata=res://*/ModelJobreport.csdl|res://*/ModelJobreport.ssdl|res://*/ModelJobreport.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="EEEntitiesProject" connectionString="metadata=res://*/ModelProject.csdl|res://*/ModelProject.ssdl|res://*/ModelProject.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=K4FASQL.kr.ds.amkor.com,50150;initial catalog=EE;persist security info=True;user id=eeadm;password=uJnU8a8q&amp;DJ+ug-D!;MultipleActiveResultSets=True;App=EntityFramework&quot;TrustServerCertificate=True" providerName="System.Data.EntityClient" />
<add name="Project.Properties.Settings.CS" connectionString="Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

View File

@@ -78,8 +78,6 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mn_jago = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -102,14 +100,6 @@
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.personalInventoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mn_docu = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripSeparator();
this.webview2TestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.btDev = new System.Windows.Forms.ToolStripMenuItem();
this.purchaseImportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -123,17 +113,11 @@
this.addSIdDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mailBackupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sPR설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = 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();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripMenuItem();
@@ -236,12 +220,8 @@
this.btSetting,
this.commonToolStripMenuItem,
this.managementToolStripMenuItem,
this.mn_docu,
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.btDev,
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.btDev});
this.menuStrip1.Location = new System.Drawing.Point(1, 1);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(1094, 27);
@@ -368,8 +348,6 @@
this.mn_purchase,
this.mn_project,
this.mn_dailyhistory,
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.mn_jago,
this.ToolStripMenuItem,
@@ -508,7 +486,6 @@
this.mn_dailyhistory.Name = "mn_dailyhistory";
this.mn_dailyhistory.Size = new System.Drawing.Size(203, 24);
this.mn_dailyhistory.Text = "업무관리";
this.mn_dailyhistory.Click += new System.EventHandler(this.ToolStripMenuItem1_Click);
//
// 목록ToolStripMenuItem1
//
@@ -548,22 +525,6 @@
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(231, 6);
//
// 교육목록ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "교육목록ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(203, 24);
this.ToolStripMenuItem.Text = "교육목록";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 비용절감ToolStripMenuItem
//
this.ToolStripMenuItem.ForeColor = System.Drawing.Color.Black;
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("비용절감ToolStripMenuItem.Image")));
this.ToolStripMenuItem.Name = "비용절감ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(203, 24);
this.ToolStripMenuItem.Text = "비용절감";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 라이선스ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("라이선스ToolStripMenuItem.Image")));
@@ -740,68 +701,6 @@
this.personalInventoryToolStripMenuItem.Visible = false;
this.personalInventoryToolStripMenuItem.Click += new System.EventHandler(this.personalInventoryToolStripMenuItem_Click);
//
// mn_docu
//
this.mn_docu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.mn_docu.Image = ((System.Drawing.Image)(resources.GetObject("mn_docu.Image")));
this.mn_docu.Name = "mn_docu";
this.mn_docu.Size = new System.Drawing.Size(65, 23);
this.mn_docu.Text = "문서";
//
// 메모장ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "메모장ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(152, 24);
this.ToolStripMenuItem.Text = "메모장";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 메일내역ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "메일내역ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(152, 24);
this.ToolStripMenuItem.Text = "메일 내역";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 기타ToolStripMenuItem
//
this.ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.toolStripMenuItem17,
this.webview2TestToolStripMenuItem});
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("기타ToolStripMenuItem.Image")));
this.ToolStripMenuItem.Name = "기타ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(65, 23);
this.ToolStripMenuItem.Text = "기타";
//
// 품목검색ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "품목검색ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(171, 24);
this.ToolStripMenuItem.Text = "품목 검색";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 대쉬보드ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "대쉬보드ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(171, 24);
this.ToolStripMenuItem.Text = "대쉬보드";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// toolStripMenuItem17
//
this.toolStripMenuItem17.Name = "toolStripMenuItem17";
this.toolStripMenuItem17.Size = new System.Drawing.Size(168, 6);
//
// webview2TestToolStripMenuItem
//
this.webview2TestToolStripMenuItem.Name = "webview2TestToolStripMenuItem";
this.webview2TestToolStripMenuItem.Size = new System.Drawing.Size(171, 24);
this.webview2TestToolStripMenuItem.Text = "Webview2 Test";
this.webview2TestToolStripMenuItem.Click += new System.EventHandler(this.webview2TestToolStripMenuItem_Click);
//
// 즐겨찾기ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("즐겨찾기ToolStripMenuItem.Image")));
@@ -823,11 +722,7 @@
this.addSIdDataToolStripMenuItem,
this.ToolStripMenuItem,
this.ToolStripMenuItem1,
this.toolStripMenuItem1,
this.ToolStripMenuItem,
this.mailBackupToolStripMenuItem,
this.ToolStripMenuItem,
this.toolStripMenuItem5,
this.ToolStripMenuItem,
this.sPR설정ToolStripMenuItem,
this.toolStripMenuItem13,
@@ -916,21 +811,6 @@
this.ToolStripMenuItem1.Text = "그룹정보";
this.ToolStripMenuItem1.Click += new System.EventHandler(this.ToolStripMenuItem1_Click);
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.ForeColor = System.Drawing.Color.HotPink;
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Size = new System.Drawing.Size(302, 24);
this.toolStripMenuItem1.Text = "Staff Grid";
this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click);
//
// 임의테이블조작ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "임의테이블조작ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(302, 24);
this.ToolStripMenuItem.Text = "구매내역 suuply 다시 설정 하기";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// mailBackupToolStripMenuItem
//
this.mailBackupToolStripMenuItem.Name = "mailBackupToolStripMenuItem";
@@ -938,18 +818,6 @@
this.mailBackupToolStripMenuItem.Text = "Mail Backup";
this.mailBackupToolStripMenuItem.Click += new System.EventHandler(this.mailBackupToolStripMenuItem_Click);
//
// 메일자동발신테스트ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "메일자동발신테스트ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(302, 24);
this.ToolStripMenuItem.Text = "메일자동발신(테스트)";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// toolStripMenuItem5
//
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(299, 6);
//
// 아이템비활성화하기ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "아이템비활성화하기ToolStripMenuItem";
@@ -978,22 +846,6 @@
this.ToolStripMenuItem.Text = "프로젝트스케쥴담당자사번업데이트";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 버젼확인ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("버젼확인ToolStripMenuItem.Image")));
this.ToolStripMenuItem.Name = "버젼확인ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(93, 23);
this.ToolStripMenuItem.Text = "버젼확인";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 설명서ToolStripMenuItem
//
this.ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("설명서ToolStripMenuItem.Image")));
this.ToolStripMenuItem.Name = "설명서ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(79, 23);
this.ToolStripMenuItem.Text = "설명서";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// tabControl1
//
this.tabControl1.Appearance = System.Windows.Forms.TabAppearance.FlatButtons;
@@ -1146,7 +998,6 @@
private System.Windows.Forms.ToolStripMenuItem itemsToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel sbLogin;
private System.Windows.Forms.ToolStripMenuItem codesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mn_docu;
private System.Windows.Forms.ToolStripMenuItem managementToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem personalInventoryToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem userInfoToolStripMenuItem;
@@ -1175,12 +1026,8 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem mailBackupToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem6;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem7;
@@ -1189,32 +1036,24 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel lbSvr;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripButton toolStripButton2;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem layoutToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem9;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem11;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem sPR설정ToolStripMenuItem;
@@ -1233,7 +1072,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel sbLoginUseTime;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem16;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
@@ -1242,8 +1080,6 @@
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem NRCR기준금액입력ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem17;
private System.Windows.Forms.ToolStripMenuItem webview2TestToolStripMenuItem;
private System.Windows.Forms.ToolStripStatusLabel sbWeb;
private System.Windows.Forms.ToolStripStatusLabel sbChat;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem18;

View File

@@ -183,8 +183,6 @@ namespace Project
this.mn_jago.Visible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_jago);
//this.mn_eq.Visible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_equipment);
this.mn_kuntae.Visible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_workday);
this.mn_docu.Visible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_docu);
//this.mn_logdata.Visible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_logdata);
//220421
FCOMMON.info.Disable_8hourover = Pub.setting.Disable8HourOver;
@@ -377,12 +375,7 @@ namespace Project
}
void menu_save_cost()
{
string formkey = "SAVECOST";
if (!ShowForm(formkey))
AddForm(formkey, new FPJ0000.fSaveCostList());
}
void menu_dayhistory()
{
@@ -680,23 +673,6 @@ namespace Project
Menu_Dashboard();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (FCOMMON.info.Login.level < 10)
{
FCOMMON.Util.MsgE("테스트 기능이므로 개발자만 사용가능 합니다.");
return;
}
FCM0000.fSendMail f = new FCM0000.fSendMail();
//f.MdiParent = this;
f.Show();
}
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
}
private void workReportImportToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -801,12 +777,7 @@ namespace Project
if (!ShowForm(formkey))
AddForm(formkey, new FCM0000.fInventoryJagoList());
}
void Menu_Note()
{
string formkey = "NOTELIST";
if (!ShowForm(formkey))
AddForm(formkey, new FPJ0000.Note.fNote());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Menu_InventoryList();
@@ -908,11 +879,6 @@ namespace Project
FCOMMON.Util.MsgI("complete");
}
private void sMTRepairLogToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string formkey = "MAILFORM";
@@ -920,20 +886,6 @@ namespace Project
AddForm(formkey, new FCM0000.fMailform());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string formkey = "MAILLIST";
if (!ShowForm(formkey))
AddForm(formkey, new FCM0000.Mail.fMailList());
}
private void pMP데이터베이스업데이트ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void mailBackupToolStripMenuItem_Click(object sender, EventArgs e)
{
var f = new FCM0000.Mail.fMailBackup();
@@ -941,11 +893,6 @@ namespace Project
f.Show();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Menu_Note();
}
private void toolStripMenuItem7_Click(object sender, EventArgs e)
{
@@ -976,10 +923,6 @@ namespace Project
AddForm(formkey, new FBS0000.fWorkTableUser());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
menu_save_cost();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -1018,12 +961,6 @@ namespace Project
AddForm(formkey, new FPJ0000.fProjectLayout());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string formkey = "EDLIST";
if (!ShowForm(formkey))
AddForm(formkey, new FED0000.fEdulist());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -1032,16 +969,6 @@ namespace Project
AddForm(formkey, new FCM0000.fJRForm());
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
// 로컬 PDF 파일 열기
var pdfPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Manual.pdf");
if (System.IO.File.Exists(pdfPath))
Util.RunExplorer(pdfPath);
else
Util.MsgE("설명서 파일을 찾을 수 없습니다.");
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string formkey = "LICENSE";

View File

@@ -150,94 +150,6 @@
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIkAA/CByYwUOGgQgTfvDgwINChQw9IHD4UGBEABAuUETo
oaNEDxg1erTo4IGDiQAGNFCA4QABAg4jdkxpoYOABAkUGKD4UaUFARUCMLCwk6NGCkADRKBQNKEHDB6E
RpDQlCNUoRYkSJhQYKPFAyqZThjbleMBDxw07CxQYMKGBRs9vNTQcaGHBXjjjuS4t2LFgAA7
</value>
</data>
<data name="managementToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQQAP/cpv/GcNvb292RIP+kG/+5T6m5rMStgK13Jv+wOt2TJKmwrP/zcZOru////wAA
AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAQACwAAAAAEAAQAAAIZQAhCBxIsKBABgQBGCTIoCEEBgEWDmRAgMAAAwUgKJQ4
QIEDBwciSmw4QMDHBRIBBCiQAIGABw8aSBSosgHMmCkH2oQpc6bAnTh9QgDa0ydRoUMffCw6s4FJB0wl
OoWKdGiDBgEBADs=
</value>
</data>
<data name="mn_docu.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJrM+3OSsKfS++zx9uXt9Yis1FdwkZW51ElVa8fj/bba/NXb5PL2+o276b3d/VJh
e7TR4ENLXNXn8KLD536kwIyzzJ/E2KjL3t7n7ykxQz5FVa/W/OLp8I+w1P///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAItgA9CBxIcOCHgx4kQIBwwcKBChQiBgjgASEECQQGZNRI
oGMDAxU9QCCQoGRJBygZNPgo8AKDBB1iyuzAoOYDgRZeonSgoGfPDQxuejjwcsLMAkgFBBVY4aVPBRui
ClCKQCCFojGRIm0ggEBVDxQG8IQqdSoAAhGsijWqdSsADmk9BBBLdqoAAHgxaBAYgAHPsnjxDtjrwcAC
Bhw5KOaAYQCEDHwNSH7wAAGCCBE0aMggtKBnggEBADs=
</value>
</data>
<data name="기타ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAKnrVsfvlYnVOHy8KnfJLJneRWqyJLvth1W7GzGTEVWnHT2aFIPNMkuiGmrKJGKt
Io7eOXa5KU64GDiWE1yqIHK3KHa5J0WeGGC/IG+1JW/FKGjCJHnRLWrOIP///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIqwA/CBTooeDAgwg9DFjoAWHCAQEAFBjQ0CHBAQAEFLBQ
8WDBjxEARPjY8YPChREiZshg4EFJhQFiFmBQAAIECh8vLoTAgAEBAgIUeGhwoaHCghUE/NTAgcCFAxAW
GDWZQamGDRgwIEAgYUJBjh4MCODAAYODBRMkSEhQMAJLARQUNODgwGsCtiYjHBDgsuCCDl4NmqxQAK7R
v3gHemD5QK4HtBMSEyRplOTBgAA7
</value>
</data>
<data name="즐겨찾기ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIMPAEWi6azap1WzS9LusYrSbApexXLHV+z41vH559Ltw8ns+pe75hBs0iCZEP//////
/yH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAAPACwAAAAAEAAQAAAIiwAfCBxIsKDBBw4SOjg4MGGDBgwY
JDzo4OEBBAgUMGiwkGBFBAcODAAAYMEAjh4ZIBgwQAAAAgZOdkTIQEGCAQRICoAZACVNBQACkHxpQEDP
jg5qLhgKQIDTowIrJoA5NGKDABIbNpjqlEGBAguyag3QEiLYsDOjPgwQYEFYsQUdRpSY1qDCugzzBgQA
Ow==
</value>
</data>
<data name="btDev.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAKxoR8VkLxFw1feVPITSWv+eQv7Qo0Cc6OyIN/v7+3PLTSCZEFy17Wa6XuT1x2bG
Q3nNUU6vRXPAa9mLXMTkwJZEHJt7LL5aJ/z8/O2KONx3L/ubP/r6+rtVI////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIpgA/CBxIsOBADBgEeljoweAHDB06eIi4QICAhRwOdjAQ
kaMDCgwELOiQ8WGHAQYMFIjIgMEBCBEzQkSwoUCBCR0OSGigIKZJDQM2cKxwoAGBBx0ykISoIcOGiAcO
EFCAVCkHphueAtgaIYKFpks7NM0qFIDFCxk0kPyQQCzZiB0CbLAqsO1YslnTrq0r9m4GvSUHcoioobDa
vQU5DIar2KFgxYEHBgQAOw==
</value>
</data>
<data name="버젼확인ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAGm6/idTd4yTmF+v8Xa37KvW+lyh3KHJ62aq41ee2bXZ98nm/2mt5W2Ck5XN/C1c
hEZieho8WXXA/2Gn4P39/W+y6V+l3qjP8Njt/lx2izxPYGyv51Oa1EJWZ////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIqgA/CPzgoaBBDwMTEoQgoGGDBhAQKvSQAcOCBQUcaHwg
USBFDARCEqhQgYEEjh47gKxwweAFBAgkREDooYMCAhs8XGCAwMOEmB1o2qywYSdMnxMABCVocwMDngUP
GLAAYCZTBTARHPAgdWpVoQV+TrBgoGwCA1+ZOkgwduuBBAk4pCWogUBcDnjxAgjQkS4BAAMCD9jrgcJE
DQ8eBAjwYKZhhQQPFoRMuXJAADs=
</value>
</data>
<data name="설명서ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAP/99v/qaOvOSem4M+zSSv/ypf/ug//1w//2zP/xnv/te//zrf/0uv/41/nWdufB
MP/vkevTVf/rcv/0s//wlv/57OvRM//vi+/OQtaXIuuYEuvTLNyhJ+vHUP///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIoAA/CBxIsCBBDwgTKizogUCEhwQIYLBgYYOHgR4cKPQA
oMEBBAgsfsjoAQGDCQsKJEhAAcKBChYQajyZkiWECwYMAHiAkAAAlCop4FRA9ABPDxgqABVqQIGEpxQG
IMTQoCaEphICaFXAAaEABCmZZtUawECGi0gRHGigloFWCgzOYhRAt0OHASg1yD24cUAFDRcNMhwAWLBB
D4UNMwz8ISAAOw==
</value>
</data>
<data name="codesToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAHan1azQ4ldvj9vp9HSQruTr80lVa+vx9pu811SRuXifuj13uYyz2VFhe4Gt2UNL
XPL1+Orv+ufu9YOqxYyzzNHW3SkxQz5FVWag2T6CuZe3y5G0t+Do7+r0/77a9f///yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIrwA/CBxIsKDAAQESIkBAYYICBQQICCAgMMAACQMyaswo
oUKDih0SZMiwoKTJBQcEVDyAoEMHDy5hdnAg4eMHBBIQeNjJcyeDAjYRRNAQs+hMoAIpRNjQs6eDAgYE
TshpVCYAqAIV5GzKU0GBB1klMKjqEgMHsB8IiOW60+wFgQQgIGDgoC4AABgwADjw9oOAChAkSChAmIPh
AxUswBXAuEEDAwYePLhwwYJNg5gFBgQAOw==
</value>
</data>
<data name="메일양식ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAHWSrbTY+6nU/I+74/r8/drj7FlxkUlVa9Xp/eLs9cvT2oWpxG+bwqPQ+57N++v1
/lJgeabK7JnB5kNLXJG0z5nA1oyw0SkxQz5FVb7e/aC91tHl8qXB2n2gu////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIpAA/CBxIsKDBgwQ9KFzIsKHCDRUqUFhAsQOAiwAMQFBY
gYDHjyAJKNjogQIBChoQZAgQAEGCiQUOKFxAIEMEDhsQPEDAQEKDBzI9dKiZIYOFowwENPg5QeHQlRIi
SJAwYIADBwWaegCQIMAACQEEKK2KFYNCrgMihBXbwEHVBGY9GFCQIEGBu3jvKrhw1oBfCBAOHJgwAQOG
CyQdKlaIsLHjggEBADs=
</value>
</data>
<data name="mn_purchase.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -342,6 +254,54 @@
Nq7P2vgxc+6aH3lHuKt0Ou1PJpM2vUR2cdVbXL34iF+O65kFQWDmnQCSJEn+WCxm00tc/2IyS5K0Yb4X
QIpGoz5RFG16YM1mc6d5L4AUiUR8oVDIJjPP81vm/wJIgiD4eJ5/8O98rT+Jli/+ECJFiAAAAABJRU5E
rkJggg==
</value>
</data>
<data name="managementToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQQAP/cpv/GcNvb292RIP+kG/+5T6m5rMStgK13Jv+wOt2TJKmwrP/zcZOru////wAA
AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAQACwAAAAAEAAQAAAIZQAhCBxIsKBABgQBGCTIoCEEBgEWDmRAgMAAAwUgKJQ4
QIEDBwciSmw4QMDHBRIBBCiQAIGABw8aSBSosgHMmCkH2oQpc6bAnTh9QgDa0ydRoUMffCw6s4FJB0wl
OoWKdGiDBgEBADs=
</value>
</data>
<data name="즐겨찾기ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIMPAEWi6azap1WzS9LusYrSbApexXLHV+z41vH559Ltw8ns+pe75hBs0iCZEP//////
/yH/C05FVFNDQVBFMi4wAwEBAAAh+QQBAAAPACwAAAAAEAAQAAAIiwAfCBxIsKDBBw4SOjg4MGGDBgwY
JDzo4OEBBAgUMGiwkGBFBAcODAAAYMEAjh4ZIBgwQAAAAgZOdkTIQEGCAQRICoAZACVNBQACkHxpQEDP
jg5qLhgKQIDTowIrJoA5NGKDABIbNpjqlEGBAguyag3QEiLYsDOjPgwQYEFYsQUdRpSY1qDCugzzBgQA
Ow==
</value>
</data>
<data name="btDev.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAKxoR8VkLxFw1feVPITSWv+eQv7Qo0Cc6OyIN/v7+3PLTSCZEFy17Wa6XuT1x2bG
Q3nNUU6vRXPAa9mLXMTkwJZEHJt7LL5aJ/z8/O2KONx3L/ubP/r6+rtVI////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIpgA/CBxIsOBADBgEeljoweAHDB06eIi4QICAhRwOdjAQ
kaMDCgwELOiQ8WGHAQYMFIjIgMEBCBEzQkSwoUCBCR0OSGigIKZJDQM2cKxwoAGBBx0ykISoIcOGiAcO
EFCAVCkHphueAtgaIYKFpks7NM0qFIDFCxk0kPyQQCzZiB0CbLAqsO1YslnTrq0r9m4GvSUHcoioobDa
vQU5DIar2KFgxYEHBgQAOw==
</value>
</data>
<data name="codesToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAHan1azQ4ldvj9vp9HSQruTr80lVa+vx9pu811SRuXifuj13uYyz2VFhe4Gt2UNL
XPL1+Orv+ufu9YOqxYyzzNHW3SkxQz5FVWag2T6CuZe3y5G0t+Do7+r0/77a9f///yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIrwA/CBxIsKDAAQESIkBAYYICBQQICCAgMMAACQMyaswo
oUKDih0SZMiwoKTJBQcEVDyAoEMHDy5hdnAg4eMHBBIQeNjJcyeDAjYRRNAQs+hMoAIpRNjQs6eDAgYE
TshpVCYAqAIV5GzKU0GBB1klMKjqEgMHsB8IiOW60+wFgQQgIGDgoC4AABgwADjw9oOAChAkSChAmIPh
AxUswBXAuEEDAwYePLhwwYJNg5gFBgQAOw==
</value>
</data>
<data name="메일양식ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAHWSrbTY+6nU/I+74/r8/drj7FlxkUlVa9Xp/eLs9cvT2oWpxG+bwqPQ+57N++v1
/lJgeabK7JnB5kNLXJG0z5nA1oyw0SkxQz5FVb7e/aC91tHl8qXB2n2gu////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIpAA/CBxIsKDBgwQ9KFzIsKHCDRUqUFhAsQOAiwAMQFBY
gYDHjyAJKNjogQIBChoQZAgQAEGCiQUOKFxAIEMEDhsQPEDAQEKDBzI9dKiZIYOFowwENPg5QeHQlRIi
SJAwYIADBwWaegCQIMAACQEEKK2KFYNCrgMihBXbwEHVBGY9GFCQIEGBu3jvKrhw1oBfCBAOHJgwAQOG
CyQdKlaIsLHjggEBADs=
</value>
</data>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -445,14 +405,14 @@
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIHSURBVDhPY2CAgZnGrAxLtTMZluosYFim08KwWFcdLL5K
i4dhmVYhwzLteQzLdFoZlqlLwfWggKU6qxmW6fyH48U6PxiWaHoyLNO8jiK+VOsJwyotCTTNWjYgSYG1
lv/9Tub8T7lc/z/3ZMX/eXNiP9Q05f9LvdzwP/Jc2X/VbV5QQ7T7UA1YpjOBf435seQr9d+Kb/X8L7nZ
lv/9Tub8T7lc/z/3ZMX/eXNiP9TU5/9LvdzwP/Jc2X/VbV5QQ7T7UA1YpjOBf435seQr9d+Kb/X8L7nZ
8//QzJz/jzrT/l+dlPkTJAbDJrtDTzAs0bmGasBSXcHiW911MEUdh+r/Xy+N+L+/1f7v9UKvzz3bCuEG
FN/qugBSj2oAAwND8c3uuTBFlZc6lp0vDDl4Odnt28Ugtf/bKpz2Fl/s+AiSK7jZ8w5dLxjAXFB0s6cE
xH/RGiH+uMzz/5UMrT9Psm3UCm/26hff6vpcdKvnPLpeMCi+02NcfKPrOIz/uNjT81Gpx38wLvHyAKu5
2V1afKu7BUUjMii+0y0GYz+p8MqCGfCk0jsTJFZ/v54j99ZEPhRNuMCjCs++J+Ve/0H4cblXL7o8QfC4
zHMj3AulHhvQ5fGC//vrOV50RZ1+0xP3H4RfdkaeAomhq0MB/w70a/490Nv3/0DvmfsHen//P9D7HxlD
xc6A1ezv0UBo3DaR/e+B3vnH2uv/oWvChUFq/x7omQfSy/B3f28vugJiMUgvw78DfbZ/D/Qs/3+gdxUp
GKQHpBcAG6GqRqSz0QwAAAAASUVORK5CYII=
xc6A1ezv0UBo3DaR/e+B3vmHmuv/oWvChUFq/x7omQfSy/B3f28vugJiMUgvw78DfbZ/D/Qs/3+gdxUp
GKQHpBcAByWqM8i7D2wAAAAASUVORK5CYII=
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -6,6 +6,8 @@ import { PatchList } from '@/pages/PatchList';
import { BugReport } from '@/pages/BugReport';
import { MailList } from '@/pages/MailList';
import { Customs } from '@/pages/Customs';
import { LicenseList } from '@/components/license/LicenseList';
import { PartList } from '@/pages/PartList';
import { comms } from '@/communication';
import { UserInfo } from '@/types';
import { Loader2 } from 'lucide-react';
@@ -101,6 +103,8 @@ export default function App() {
<Route path="/patch-list" element={<PatchList />} />
<Route path="/bug-report" element={<BugReport />} />
<Route path="/mail-list" element={<MailList />} />
<Route path="/license" element={<LicenseList />} />
<Route path="/partlist" element={<PartList />} />
</Route>
</Routes>
{/* Tailwind Breakpoint Indicator - 개발용 */}

View File

@@ -42,6 +42,8 @@ import type {
BoardItem,
MailItem,
CustomItem,
LicenseItem,
PartListItem,
} from '@/types';
// WebView2 환경 감지
@@ -464,6 +466,21 @@ class CommunicationLayer {
}
}
public async saveProjectHistory(historyData: { idx?: number; pidx: number; pdate: string; progress: number; remark: string }): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.Project_SaveHistory(
historyData.idx || 0,
historyData.pidx,
historyData.pdate,
historyData.progress,
historyData.remark
);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('PROJECT_SAVE_HISTORY', 'PROJECT_SAVE_HISTORY_RESULT', historyData);
}
}
// ===== Login API =====
@@ -1361,6 +1378,64 @@ class CommunicationLayer {
}
}
/**
* 메일 데이터 추가 (발송 대기열)
* @param cate 분류
* @param subject 제목
* @param fromlist 발신자
* @param tolist 수신자
* @param cc 참조
* @param bcc 숨은참조
* @param body 내용
* @returns ApiResponse
*/
public async addMailData(cate: string, subject: string, fromlist: string, tolist: string, cc: string, bcc: string, body: string): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.Mail_AddData(cate, subject, fromlist, tolist, cc, bcc, body);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('MAIL_ADD_DATA', 'MAIL_ADD_DATA_RESULT', { cate, subject, fromlist, tolist, cc, bcc, body });
}
}
/**
* 메일 직접 발송 (SMTP)
* @param cate 분류
* @param subject 제목
* @param fromlist 발신자
* @param tolist 수신자
* @param cc 참조
* @param bcc 숨은참조
* @param body 내용
* @returns ApiResponse
*/
public async sendMailDirect(cate: string, subject: string, fromlist: string, tolist: string, cc: string, bcc: string, body: string): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.Mail_SendDirect(cate, subject, fromlist, tolist, cc, bcc, body);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('MAIL_SEND_DIRECT', 'MAIL_SEND_DIRECT_RESULT', { cate, subject, fromlist, tolist, cc, bcc, body });
}
}
/**
* Outlook으로 메일 미리보기/발송
* @param subject 제목
* @param tolist 수신자
* @param cc 참조
* @param bcc 숨은참조
* @param body 내용
* @returns ApiResponse
*/
public async sendMailOutlook(subject: string, tolist: string, cc: string, bcc: string, body: string): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.Mail_SendOutlook(subject, tolist, cc, bcc, body);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('MAIL_SEND_OUTLOOK', 'MAIL_SEND_OUTLOOK_RESULT', { subject, tolist, cc, bcc, body });
}
}
/**
* 업체정보 목록 조회
* @param searchKey 검색어
@@ -1388,6 +1463,175 @@ class CommunicationLayer {
return this.wsRequest<ApiResponse<CustomItem>>('CUSTOMS_GET_DETAIL', 'CUSTOMS_DETAIL_DATA', { idx });
}
}
/**
* 라이선스 목록 조회
* @returns ApiResponse<LicenseItem[]>
*/
public async getLicenseList(): Promise<ApiResponse<LicenseItem[]>> {
if (isWebView && machine) {
const result = await machine.License_GetList();
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse<LicenseItem[]>>('LICENSE_GET_LIST', 'LICENSE_LIST_DATA', {});
}
}
/**
* 라이선스 추가
*/
public async addLicense(
name: string,
version: string,
meterialNo: string,
supply: string,
qty: number,
uids: string,
serialNo: string,
remark: string,
sdate: string,
edate: string,
manu: string,
expire: boolean
): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.License_Add(name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('LICENSE_ADD', 'LICENSE_ADD_RESULT', {
name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire
});
}
}
/**
* 라이선스 수정
*/
public async updateLicense(
idx: number,
name: string,
version: string,
meterialNo: string,
supply: string,
qty: number,
uids: string,
serialNo: string,
remark: string,
sdate: string,
edate: string,
manu: string,
expire: boolean
): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.License_Update(idx, name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('LICENSE_UPDATE', 'LICENSE_UPDATE_RESULT', {
idx, name, version, meterialNo, supply, qty, uids, serialNo, remark, sdate, edate, manu, expire
});
}
}
/**
* 라이선스 삭제
*/
public async deleteLicense(idx: number): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.License_Delete(idx);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('LICENSE_DELETE', 'LICENSE_DELETE_RESULT', { idx });
}
}
/**
* 라이선스 폴더 열기
*/
public async openLicenseFolder(idx: number): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.License_OpenFolder(idx);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('LICENSE_OPEN_FOLDER', 'LICENSE_OPEN_FOLDER_RESULT', { idx });
}
}
/**
* 라이선스 CSV 내보내기
*/
public async exportLicenseCSV(filePath: string): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.License_ExportCSV(filePath);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('LICENSE_EXPORT_CSV', 'LICENSE_EXPORT_CSV_RESULT', { filePath });
}
}
// ===== PartList API =====
/**
* 프로젝트별 파트리스트 조회
*/
public async getPartList(projectIdx: number): Promise<ApiResponse<PartListItem[]>> {
if (isWebView && machine) {
const result = await machine.PartList_GetList(projectIdx);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse<PartListItem[]>>('PARTLIST_GET_LIST', 'PARTLIST_LIST_DATA', { projectIdx });
}
}
/**
* 파트리스트 항목 저장 (추가/수정)
*/
public async savePartList(
idx: number,
projectIdx: number,
itemgroup: string,
itemname: string,
item: string,
itemmodel: string,
itemscale: string,
itemunit: string,
qty: number,
price: number,
itemsupply: string,
itemsupplyidx: number,
itemmanu: string,
itemsid: string,
option1: string,
remark: string,
no: number,
qtybuy: number
): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.PartList_Save(
idx, projectIdx, itemgroup, itemname, item, itemmodel, itemscale,
itemunit, qty, price, itemsupply, itemsupplyidx, itemmanu, itemsid,
option1, remark, no, qtybuy
);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('PARTLIST_SAVE', 'PARTLIST_SAVE_RESULT', {
idx, projectIdx, itemgroup, itemname, item, itemmodel, itemscale,
itemunit, qty, price, itemsupply, itemsupplyidx, itemmanu, itemsid,
option1, remark, no, qtybuy
});
}
}
/**
* 파트리스트 항목 삭제
*/
public async deletePartList(idx: number): Promise<ApiResponse> {
if (isWebView && machine) {
const result = await machine.PartList_Delete(idx);
return JSON.parse(result);
} else {
return this.wsRequest<ApiResponse>('PARTLIST_DELETE', 'PARTLIST_DELETE_RESULT', { idx });
}
}
}
export const comms = new CommunicationLayer();

View File

@@ -262,7 +262,9 @@ export function JobreportEditModal({
onMouseDown={(e) => e.stopPropagation()}
>
{/* 헤더 */}
<div className="px-6 py-4 border-b border-white/10 flex items-center justify-between sticky top-0 bg-slate-800/95 backdrop-blur z-10">
<div className={`px-6 py-4 border-b border-white/10 flex items-center justify-between sticky top-0 backdrop-blur z-10 ${
editingItem ? 'bg-slate-800/95' : 'bg-primary-600/30'
}`}>
<h2 className="text-xl font-semibold text-white flex items-center">
<FileText className="w-5 h-5 mr-2" />
{editingItem ? '업무일지 수정' : '업무일지 등록'}

View File

@@ -22,8 +22,11 @@ import {
Building,
Star,
Bug,
Settings,
Key,
} from 'lucide-react';
import { clsx } from 'clsx';
import { comms } from '@/communication';
import { UserInfoDialog } from '@/components/user/UserInfoDialog';
import { UserGroupDialog } from '@/components/user/UserGroupDialog';
import { KuntaeErrorCheckDialog } from '@/components/kuntae/KuntaeErrorCheckDialog';
@@ -39,6 +42,7 @@ interface NavItem {
icon: React.ElementType;
label: string;
action?: string;
className?: string; // 추가: 클래스 이름
}
interface SubMenu {
@@ -54,6 +58,7 @@ interface MenuItem {
label: string;
submenu?: SubMenu;
action?: string;
className?: string; // gold 등 스타일 적용용
}
interface DropdownMenuConfig {
@@ -78,6 +83,13 @@ const leftDropdownMenus: DropdownMenuConfig[] = [
{ type: 'action', icon: AlertTriangle, label: '오류검사', action: 'kuntaeErrorCheck' },
],
},
{
label: '관리',
icon: Settings,
items: [
{ type: 'link', path: '/license', icon: Key, label: '라이선스' },
],
},
];
// 좌측 단독 액션 버튼
@@ -90,7 +102,16 @@ const rightNavItems: NavItem[] = [
];
// 드롭다운 메뉴 (2단계 지원)
const dropdownMenus: DropdownMenuConfig[] = [
const getDropdownMenus = (userLevel: number, userCode: string): DropdownMenuConfig[] => {
const mailListItem = {
type: 'link' as const,
path: '/mail-list',
icon: Mail,
label: '메일 내역',
className: (userCode === '395552') ? 'text-[gold] font-bold' : '',
};
return [
{
label: '공용정보',
icon: Database,
@@ -124,10 +145,11 @@ const dropdownMenus: DropdownMenuConfig[] = [
{ type: 'link', path: '/note', icon: FileText, label: '메모장' },
{ type: 'link', path: '/patch-list', icon: FileText, label: '패치 내역' },
{ type: 'link', path: '/bug-report', icon: Bug, label: '버그 신고' },
{ type: 'link', path: '/mail-list', icon: Mail, label: '메일 내역' },
...(userLevel >= 9 || userCode === '395552' ? [mailListItem] : []),
],
},
];
};
function DropdownNavMenu({
menu,
@@ -194,7 +216,7 @@ function DropdownNavMenu({
'flex items-center space-x-2 px-4 py-2 text-sm transition-colors',
isActive
? 'bg-white/20 text-white'
: 'text-white/70 hover:bg-white/10 hover:text-white'
: (item.className || 'text-white/70 hover:bg-white/10 hover:text-white')
)
}
>
@@ -326,7 +348,7 @@ function MobileDropdownMenu({
'flex items-center space-x-3 px-4 py-2 rounded-lg transition-all duration-200',
isActive
? 'bg-white/20 text-white'
: 'text-white/70 hover:bg-white/10 hover:text-white'
: (item.className || 'text-white/70 hover:bg-white/10 hover:text-white')
)
}
>
@@ -373,7 +395,7 @@ function MobileDropdownMenu({
'flex items-center space-x-3 px-4 py-2 rounded-lg transition-all duration-200',
isActive
? 'bg-white/20 text-white'
: 'text-white/70 hover:bg-white/10 hover:text-white'
: (item.className || 'text-white/70 hover:bg-white/10 hover:text-white')
)
}
>
@@ -409,6 +431,27 @@ export function Header(_props: HeaderProps) {
const [showUserGroupDialog, setShowUserGroupDialog] = useState(false);
const [showKuntaeErrorCheckDialog, setShowKuntaeErrorCheckDialog] = useState(false);
const [showFavoriteDialog, setShowFavoriteDialog] = useState(false);
const [userLevel, setUserLevel] = useState<number>(0);
const [userCode, setUserCode] = useState<string>('');
// 사용자 정보 로드
useEffect(() => {
const loadUserInfo = async () => {
try {
const loginStatus = await comms.checkLoginStatus();
console.log('Login Status:', loginStatus);
if (loginStatus.Success && loginStatus.IsLoggedIn && loginStatus.User) {
const user = loginStatus.User as { Level?: number; Id?: string };
setUserLevel(user.Level || 0);
setUserCode(user.Id || '');
console.log('userLevel:', user.Level, 'userCode:', user.Id);
}
} catch (error) {
console.error('사용자 정보 로드 오류:', error);
}
};
loadUserInfo();
}, []);
const handleAction = (action: string) => {
if (action === 'userInfo') {
@@ -485,7 +528,7 @@ export function Header(_props: HeaderProps) {
{/* Desktop Navigation - Right */}
<nav className="hidden lg:flex items-center space-x-1">
{/* 드롭다운 메뉴들 (공용정보) */}
{dropdownMenus.map((menu) => (
{getDropdownMenus(userLevel, userCode).map((menu) => (
<DropdownNavMenu key={menu.label} menu={menu} onAction={handleAction} />
))}
@@ -574,7 +617,7 @@ export function Header(_props: HeaderProps) {
<div className="border-t border-white/10 my-2" />
{/* 우측 드롭다운 메뉴들 (공용정보) */}
{dropdownMenus.map((menu) => (
{getDropdownMenus(userLevel, userCode).map((menu) => (
<MobileDropdownMenu
key={menu.label}
menu={menu}

View File

@@ -12,6 +12,7 @@ interface StatusBarProps {
export function StatusBar({ userName, userDept, isConnected }: StatusBarProps) {
const [currentTime, setCurrentTime] = useState(new Date());
const [versionDisplay, setVersionDisplay] = useState('');
const [hasNewVersion, setHasNewVersion] = useState(false);
useEffect(() => {
const timer = setInterval(() => setCurrentTime(new Date()), 1000);
@@ -25,6 +26,7 @@ export function StatusBar({ userName, userDept, isConnected }: StatusBarProps) {
const result = await comms.getAppVersion();
if (result.Success) {
setVersionDisplay(result.DisplayVersion);
setHasNewVersion(result.HasNewVersion || false);
}
} catch (error) {
console.error('버전 정보 로드 오류:', error);
@@ -41,8 +43,13 @@ export function StatusBar({ userName, userDept, isConnected }: StatusBarProps) {
</div>
{/* Center: App Version */}
<div className="text-white/50">
<div className={`font-medium ${hasNewVersion ? 'text-yellow-400 animate-pulse' : 'text-white/50'}`}>
{versionDisplay || 'Loading...'}
{hasNewVersion && (
<span className="ml-2 text-xs bg-yellow-500/20 text-yellow-400 px-2 py-0.5 rounded animate-pulse">
</span>
)}
</div>
{/* Right: Connection Status & Time */}

View File

@@ -0,0 +1,293 @@
import { X, Save, Trash2 } from 'lucide-react';
import { useState, useEffect } from 'react';
import type { LicenseItem } from '@/types';
interface LicenseEditDialogProps {
item: LicenseItem | null;
isOpen: boolean;
onClose: () => void;
onSave: (data: Partial<LicenseItem>) => Promise<void>;
onDelete?: (idx: number) => Promise<void>;
}
export function LicenseEditDialog({ item, isOpen, onClose, onSave, onDelete }: LicenseEditDialogProps) {
const [formData, setFormData] = useState<Partial<LicenseItem>>({});
const [saving, setSaving] = useState(false);
useEffect(() => {
if (item) {
setFormData({
idx: item.idx,
expire: item.expire || false,
name: item.name || '',
version: item.version || '',
meterialNo: item.meterialNo || '',
supply: item.supply || '',
qty: item.qty || 1,
uids: item.uids || '',
serialNo: item.serialNo || '',
remark: item.remark || '',
sdate: item.sdate ? item.sdate.split('T')[0] : '',
edate: item.edate ? item.edate.split('T')[0] : '',
manu: item.manu || '',
});
}
}, [item]);
useEffect(() => {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === 'Escape' && isOpen) {
onClose();
}
};
if (isOpen) {
document.addEventListener('keydown', handleEscape);
return () => document.removeEventListener('keydown', handleEscape);
}
}, [isOpen, onClose]);
const handleSave = async () => {
if (!formData.name?.trim()) {
alert('제품명을 입력해주세요.');
return;
}
setSaving(true);
try {
await onSave(formData);
onClose();
} catch (error) {
console.error('Save failed:', error);
alert('저장에 실패했습니다.');
} finally {
setSaving(false);
}
};
const handleDelete = async () => {
if (!formData.idx) return;
if (!confirm('삭제하시겠습니까?')) return;
setSaving(true);
try {
if (onDelete) {
await onDelete(formData.idx);
}
onClose();
} catch (error) {
console.error('Delete failed:', error);
alert('삭제에 실패했습니다.');
} finally {
setSaving(false);
}
};
if (!isOpen) return null;
return (
<div className="fixed inset-0 z-50 flex items-center justify-center bg-black/50" onClick={onClose}>
<div className="glass-effect rounded-lg w-full max-w-3xl max-h-[90vh] overflow-y-auto m-4" onClick={(e) => e.stopPropagation()}>
{/* Header */}
<div className="flex items-center justify-between p-4 border-b border-white/10">
<h2 className="text-xl font-semibold text-white">
{formData.idx ? '라이선스 수정' : '라이선스 추가'}
</h2>
<button
onClick={onClose}
className="text-white/70 hover:text-white transition-colors"
>
<X className="w-6 h-6" />
</button>
</div>
{/* Body */}
<div className="p-6 space-y-6">
{/* 기본 정보 */}
<div className="space-y-4">
<h3 className="text-sm font-semibold text-white/90 flex items-center space-x-2 border-b border-white/10 pb-2">
<span> </span>
</h3>
<div className="grid grid-cols-12 gap-4">
<div className="col-span-1 flex items-center">
<label className="flex items-center space-x-2 cursor-pointer">
<input
type="checkbox"
checked={formData.expire || false}
onChange={(e) => setFormData({ ...formData, expire: e.target.checked })}
className="w-4 h-4"
/>
<span className="text-sm text-white/70"></span>
</label>
</div>
<div className="col-span-5">
<label className="block text-sm text-white/70 mb-1"> *</label>
<input
type="text"
value={formData.name || ''}
onChange={(e) => setFormData({ ...formData, name: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div className="col-span-3">
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="text"
value={formData.version || ''}
onChange={(e) => setFormData({ ...formData, version: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div className="col-span-3">
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="text"
value={formData.meterialNo || ''}
onChange={(e) => setFormData({ ...formData, meterialNo: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
</div>
</div>
{/* 공급 정보 */}
<div className="space-y-4">
<h3 className="text-sm font-semibold text-white/90 flex items-center space-x-2 border-b border-white/10 pb-2">
<span> </span>
</h3>
<div className="grid grid-cols-2 gap-4">
<div>
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="text"
value={formData.supply || ''}
onChange={(e) => setFormData({ ...formData, supply: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div>
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="text"
value={formData.manu || ''}
onChange={(e) => setFormData({ ...formData, manu: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
</div>
</div>
{/* 사용 정보 */}
<div className="space-y-4">
<h3 className="text-sm font-semibold text-white/90 flex items-center space-x-2 border-b border-white/10 pb-2">
<span> </span>
</h3>
<div className="grid grid-cols-12 gap-4">
<div className="col-span-2">
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="number"
value={formData.qty || 1}
onChange={(e) => setFormData({ ...formData, qty: parseInt(e.target.value) || 1 })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div className="col-span-4">
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="text"
value={formData.uids || ''}
onChange={(e) => setFormData({ ...formData, uids: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div className="col-span-6">
<label className="block text-sm text-white/70 mb-1">S/N</label>
<input
type="text"
value={formData.serialNo || ''}
onChange={(e) => setFormData({ ...formData, serialNo: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
</div>
</div>
{/* 기간 정보 */}
<div className="space-y-4">
<h3 className="text-sm font-semibold text-white/90 flex items-center space-x-2 border-b border-white/10 pb-2">
<span> </span>
</h3>
<div className="grid grid-cols-2 gap-4">
<div>
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="date"
value={formData.sdate || ''}
onChange={(e) => setFormData({ ...formData, sdate: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
<div>
<label className="block text-sm text-white/70 mb-1"></label>
<input
type="date"
value={formData.edate || ''}
onChange={(e) => setFormData({ ...formData, edate: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500"
/>
</div>
</div>
</div>
{/* 비고 */}
<div className="space-y-4">
<h3 className="text-sm font-semibold text-white/90 flex items-center space-x-2 border-b border-white/10 pb-2">
<span></span>
</h3>
<textarea
value={formData.remark || ''}
onChange={(e) => setFormData({ ...formData, remark: e.target.value })}
rows={3}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded text-white focus:outline-none focus:border-blue-500 resize-none"
placeholder="추가 메모를 입력하세요..."
/>
</div>
</div>
{/* Footer */}
<div className="flex items-center justify-between p-4 border-t border-white/10">
<div>
{formData.idx && onDelete && (
<button
onClick={handleDelete}
disabled={saving}
className="flex items-center space-x-2 px-4 py-2 bg-red-500 hover:bg-red-600 disabled:bg-gray-600 text-white rounded-lg transition-colors"
>
<Trash2 className="w-4 h-4" />
<span></span>
</button>
)}
</div>
<div className="flex items-center space-x-2">
<button
onClick={onClose}
disabled={saving}
className="px-4 py-2 bg-gray-600 hover:bg-gray-700 disabled:bg-gray-800 text-white rounded-lg transition-colors"
>
</button>
<button
onClick={handleSave}
disabled={saving}
className="flex items-center space-x-2 px-4 py-2 bg-blue-500 hover:bg-blue-600 disabled:bg-gray-600 text-white rounded-lg transition-colors"
>
<Save className="w-4 h-4" />
<span>{saving ? '저장 중...' : '저장'}</span>
</button>
</div>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,387 @@
import { useState, useEffect } from 'react';
import {
Plus,
FolderOpen,
Download,
Search,
X,
ChevronLeft,
ChevronRight,
CheckCircle,
XCircle,
} from 'lucide-react';
import { comms } from '@/communication';
import { LicenseEditDialog } from './LicenseEditDialog';
import type { LicenseItem } from '@/types';
export function LicenseList() {
const [list, setList] = useState<LicenseItem[]>([]);
const [filteredList, setFilteredList] = useState<LicenseItem[]>([]);
const [loading, setLoading] = useState(false);
const [searchText, setSearchText] = useState('');
const [selectedItem, setSelectedItem] = useState<LicenseItem | null>(null);
const [isDialogOpen, setIsDialogOpen] = useState(false);
// Pagination
const [currentPage, setCurrentPage] = useState(1);
const pageSize = 25;
useEffect(() => {
loadData();
}, []);
useEffect(() => {
applyFilter();
}, [searchText, list]);
const loadData = async () => {
setLoading(true);
try {
const response = await comms.getLicenseList();
if (response.Success && response.Data) {
setList(response.Data);
} else {
alert(response.Message || '라이선스 목록을 불러오는데 실패했습니다.');
}
} catch (error) {
console.error('Failed to load license list:', error);
alert('라이선스 목록을 불러오는데 실패했습니다.');
} finally {
setLoading(false);
}
};
const applyFilter = () => {
if (!searchText.trim()) {
setFilteredList(list);
return;
}
const search = searchText.toLowerCase();
const filtered = list.filter((item) => {
return (
item.name?.toLowerCase().includes(search) ||
item.version?.toLowerCase().includes(search) ||
item.supply?.toLowerCase().includes(search) ||
item.manu?.toLowerCase().includes(search) ||
item.serialNo?.toLowerCase().includes(search) ||
item.meterialNo?.toLowerCase().includes(search) ||
item.remark?.toLowerCase().includes(search)
);
});
setFilteredList(filtered);
setCurrentPage(1);
};
const handleAdd = () => {
setSelectedItem({
expire: false,
name: '',
version: '',
meterialNo: '',
supply: '',
qty: 1,
uids: '',
serialNo: '',
remark: '',
sdate: new Date().toISOString().split('T')[0],
edate: '',
manu: '',
});
setIsDialogOpen(true);
};
const handleRowClick = (item: LicenseItem) => {
setSelectedItem(item);
setIsDialogOpen(true);
};
const handleSave = async (formData: Partial<LicenseItem>) => {
if (!formData.name?.trim()) {
alert('제품명을 입력해주세요.');
return;
}
try {
setLoading(true);
let response;
if (formData.idx) {
// Update
response = await comms.updateLicense(
formData.idx,
formData.name!,
formData.version || '',
formData.meterialNo || '',
formData.supply || '',
formData.qty || 1,
formData.uids || '',
formData.serialNo || '',
formData.remark || '',
formData.sdate || '',
formData.edate || '',
formData.manu || '',
formData.expire || false
);
} else {
// Add
response = await comms.addLicense(
formData.name!,
formData.version || '',
formData.meterialNo || '',
formData.supply || '',
formData.qty || 1,
formData.uids || '',
formData.serialNo || '',
formData.remark || '',
formData.sdate || '',
formData.edate || '',
formData.manu || '',
formData.expire || false
);
}
if (response.Success) {
alert(response.Message || '저장되었습니다.');
await loadData();
} else {
alert(response.Message || '저장에 실패했습니다.');
}
} catch (error) {
console.error('Failed to save license:', error);
alert('저장에 실패했습니다.');
} finally {
setLoading(false);
}
};
const handleDelete = async (idx: number) => {
try {
setLoading(true);
const response = await comms.deleteLicense(idx);
if (response.Success) {
alert(response.Message || '삭제되었습니다.');
await loadData();
} else {
alert(response.Message || '삭제에 실패했습니다.');
}
} catch (error) {
console.error('Failed to delete license:', error);
alert('삭제에 실패했습니다.');
} finally {
setLoading(false);
}
};
const handleOpenFolder = async (item: LicenseItem, e: React.MouseEvent) => {
e.stopPropagation();
if (!item.idx) {
alert('저장된 자료만 폴더를 열 수 있습니다.');
return;
}
try {
const response = await comms.openLicenseFolder(item.idx);
if (!response.Success) {
alert(response.Message || '폴더 열기에 실패했습니다.');
}
} catch (error) {
console.error('Failed to open folder:', error);
alert('폴더 열기에 실패했습니다.');
}
};
const handleExportCSV = async () => {
const filename = `license_${new Date().toISOString().split('T')[0]}.csv`;
const filepath = `C:\\Temp\\${filename}`;
try {
const response = await comms.exportLicenseCSV(filepath);
if (response.Success) {
alert(`CSV 파일이 생성되었습니다.\n\n${filepath}`);
} else {
alert(response.Message || 'CSV 내보내기에 실패했습니다.');
}
} catch (error) {
console.error('Failed to export CSV:', error);
alert('CSV 내보내기에 실패했습니다.');
}
};
const handleCloseDialog = () => {
setIsDialogOpen(false);
setSelectedItem(null);
};
// Pagination
const totalPages = Math.ceil(filteredList.length / pageSize);
const paginatedList = filteredList.slice(
(currentPage - 1) * pageSize,
currentPage * pageSize
);
const goToPreviousPage = () => {
setCurrentPage((prev) => Math.max(1, prev - 1));
};
const goToNextPage = () => {
setCurrentPage((prev) => Math.min(totalPages, prev + 1));
};
return (
<div className="p-6 space-y-4">
{/* Header */}
<div className="flex items-center justify-between">
<h1 className="text-2xl font-bold text-white"> </h1>
<div className="flex items-center space-x-2">
<button
onClick={handleAdd}
disabled={loading}
className="flex items-center space-x-2 px-4 py-2 bg-blue-500 hover:bg-blue-600 disabled:bg-gray-600 text-white rounded-lg transition-colors"
>
<Plus className="w-4 h-4" />
<span></span>
</button>
<button
onClick={handleExportCSV}
disabled={loading}
className="flex items-center space-x-2 px-4 py-2 bg-green-500 hover:bg-green-600 disabled:bg-gray-600 text-white rounded-lg transition-colors"
>
<Download className="w-4 h-4" />
<span>CSV</span>
</button>
</div>
</div>
{/* Search */}
<div className="flex items-center space-x-2">
<div className="flex-1 relative">
<Search className="absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-white/50" />
<input
type="text"
value={searchText}
onChange={(e) => setSearchText(e.target.value)}
placeholder="검색 (제품명, 버전, 공급업체, 제조사, S/N, 자재번호, 비고)"
className="w-full pl-10 pr-10 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:border-blue-500"
/>
{searchText && (
<button
onClick={() => setSearchText('')}
className="absolute right-3 top-1/2 -translate-y-1/2 text-white/50 hover:text-white"
>
<X className="w-4 h-4" />
</button>
)}
</div>
</div>
{/* Table */}
<div className="glass-effect rounded-lg overflow-hidden">
<div className="overflow-x-auto">
<table className="w-full border-collapse">
<thead className="bg-white/10">
<tr>
<th className="px-4 py-3 text-center text-sm font-semibold text-white border-r border-white/10 w-16"></th>
<th className="px-4 py-3 text-left text-sm font-semibold text-white border-r border-white/10" style={{ width: '25%' }}></th>
<th className="px-4 py-3 text-left text-sm font-semibold text-white border-r border-white/10" style={{ width: '25%' }}></th>
<th className="px-4 py-3 text-left text-sm font-semibold text-white border-r border-white/10 w-20"></th>
<th className="px-4 py-3 text-left text-sm font-semibold text-white border-r border-white/10" style={{ width: '12%' }}></th>
<th className="px-4 py-3 text-left text-sm font-semibold text-white" style={{ width: '15%' }}>S/N</th>
</tr>
</thead>
<tbody>
{loading && (
<tr>
<td colSpan={6} className="px-4 py-8 text-center text-white/70">
...
</td>
</tr>
)}
{!loading && paginatedList.length === 0 && (
<tr>
<td colSpan={6} className="px-4 py-8 text-center text-white/70">
.
</td>
</tr>
)}
{!loading &&
paginatedList.map((item) => (
<tr
key={item.idx}
onClick={() => handleRowClick(item)}
className={`border-t border-white/10 hover:bg-white/10 cursor-pointer transition-colors ${
item.expire ? 'bg-red-500/10' : ''
}`}
>
<td className="px-4 py-3 text-center border-r border-white/10">
<div className="flex justify-center" title={item.expire ? '만료' : '유효'}>
{item.expire ? (
<XCircle className="w-5 h-5 text-red-500" />
) : (
<CheckCircle className="w-5 h-5 text-green-500" />
)}
</div>
</td>
<td className="px-4 py-3 text-sm text-white border-r border-white/10 max-w-xs">
<div className="flex items-center space-x-2">
<button
onClick={(e) => handleOpenFolder(item, e)}
className="p-1 text-yellow-400 hover:text-yellow-300 transition-colors flex-shrink-0"
title="폴더 열기"
>
<FolderOpen className="w-4 h-4" />
</button>
<span className="break-words">{item.name}</span>
</div>
</td>
<td className="px-4 py-3 text-sm text-white border-r border-white/10 break-words">{item.version}</td>
<td className="px-4 py-3 text-sm text-white border-r border-white/10">{item.qty}</td>
<td className="px-4 py-3 text-sm text-white border-r border-white/10 break-words max-w-[8rem]">{item.uids}</td>
<td className="px-4 py-3 text-sm text-white break-words">{item.serialNo}</td>
</tr>
))}
</tbody>
</table>
</div>
{/* Pagination */}
{totalPages > 1 && (
<div className="flex items-center justify-between px-4 py-3 border-t border-white/10">
<div className="text-sm text-white/70">
{filteredList.length} {(currentPage - 1) * pageSize + 1}~
{Math.min(currentPage * pageSize, filteredList.length)}
</div>
<div className="flex items-center space-x-2">
<button
onClick={goToPreviousPage}
disabled={currentPage === 1}
className="p-2 text-white/70 hover:text-white disabled:text-white/30 disabled:cursor-not-allowed"
>
<ChevronLeft className="w-5 h-5" />
</button>
<span className="text-sm text-white">
{currentPage} / {totalPages}
</span>
<button
onClick={goToNextPage}
disabled={currentPage === totalPages}
className="p-2 text-white/70 hover:text-white disabled:text-white/30 disabled:cursor-not-allowed"
>
<ChevronRight className="w-5 h-5" />
</button>
</div>
</div>
)}
</div>
{/* Edit Dialog */}
<LicenseEditDialog
item={selectedItem}
isOpen={isDialogOpen}
onClose={handleCloseDialog}
onSave={handleSave}
onDelete={handleDelete}
/>
</div>
);
}

View File

@@ -0,0 +1,304 @@
import { useState, useEffect } from 'react';
import { X, Mail, Send } from 'lucide-react';
import { comms } from '@/communication';
interface MailTestDialogProps {
isOpen: boolean;
onClose: () => void;
}
export function MailTestDialog({ isOpen, onClose }: MailTestDialogProps) {
const [formData, setFormData] = useState({
cate: '테스트',
subject: '',
fromlist: '',
tolist: '',
cc: '',
bcc: '',
body: '',
});
const [processing, setProcessing] = useState(false);
useEffect(() => {
const loadUserEmail = async () => {
try {
const response = await comms.checkLoginStatus();
if (response.Success && response.IsLoggedIn && response.User) {
const user = response.User as { Email?: string };
if (user.Email) {
setFormData(prev => ({ ...prev, fromlist: user.Email || '' }));
}
}
} catch (error) {
console.error('사용자 정보 로드 오류:', error);
}
};
if (isOpen) {
loadUserEmail();
}
}, [isOpen]);
useEffect(() => {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === 'Escape' && isOpen) {
onClose();
}
};
if (isOpen) {
window.addEventListener('keydown', handleEscape);
return () => window.removeEventListener('keydown', handleEscape);
}
}, [isOpen, onClose]);
const handleSubmit = async (mode: 'queue' | 'direct' | 'outlook' = 'queue') => {
if (!formData.subject.trim()) {
alert('제목을 입력해주세요.');
return;
}
if (!formData.tolist.trim()) {
alert('수신자를 입력해주세요.');
return;
}
if (!formData.body.trim()) {
alert('내용을 입력해주세요.');
return;
}
setProcessing(true);
try {
let response;
if (mode === 'outlook') {
// Outlook 미리보기
response = await comms.sendMailOutlook(
formData.subject,
formData.tolist,
formData.cc,
formData.bcc,
formData.body
);
} else if (mode === 'direct') {
// 직접 발송
response = await comms.sendMailDirect(
formData.cate,
formData.subject,
formData.fromlist,
formData.tolist,
formData.cc,
formData.bcc,
formData.body
);
} else {
// 발송 대기열에 추가
response = await comms.addMailData(
formData.cate,
formData.subject,
formData.fromlist,
formData.tolist,
formData.cc,
formData.bcc,
formData.body
);
}
if (response.Success) {
alert(response.Message || '처리되었습니다.');
if (mode !== 'outlook') {
onClose();
// 폼 초기화
setFormData({
cate: '테스트',
subject: '',
fromlist: formData.fromlist, // 발신자는 유지
tolist: '',
cc: '',
bcc: '',
body: '',
});
}
} else {
alert(response.Message || '메일 처리에 실패했습니다.');
}
} catch (error) {
console.error('메일 처리 오류:', error);
alert('메일 처리 중 오류가 발생했습니다.');
} finally {
setProcessing(false);
}
};
if (!isOpen) return null;
return (
<div className="fixed inset-0 z-[10000] flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm">
<div className="relative w-full max-w-3xl glass-effect-solid rounded-2xl shadow-2xl overflow-hidden">
{/* Header */}
<div className="flex items-center justify-between px-6 py-4 border-b border-white/10">
<div className="flex items-center gap-3">
<Mail className="w-5 h-5 text-primary-400" />
<h2 className="text-lg font-semibold text-white"> </h2>
</div>
<button
onClick={onClose}
className="p-2 rounded-lg text-white/60 hover:text-white hover:bg-white/10 transition-colors"
>
<X className="w-5 h-5" />
</button>
</div>
{/* Content */}
<div className="p-6 space-y-4 max-h-[70vh] overflow-y-auto">
{/* 분류 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"></label>
<input
type="text"
value={formData.cate}
onChange={(e) => setFormData({ ...formData, cate: e.target.value })}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 제목 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"> *</label>
<input
type="text"
value={formData.subject}
onChange={(e) => setFormData({ ...formData, subject: e.target.value })}
placeholder="메일 제목을 입력하세요"
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 발신자 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"></label>
<input
type="text"
value={formData.fromlist}
onChange={(e) => setFormData({ ...formData, fromlist: e.target.value })}
placeholder="발신자 이메일 (쉼표로 구분)"
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 수신자 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"> *</label>
<input
type="text"
value={formData.tolist}
onChange={(e) => setFormData({ ...formData, tolist: e.target.value })}
placeholder="수신자 이메일 (쉼표로 구분)"
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 참조 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"> (CC)</label>
<input
type="text"
value={formData.cc}
onChange={(e) => setFormData({ ...formData, cc: e.target.value })}
placeholder="참조 이메일 (쉼표로 구분)"
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 숨은참조 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"> (BCC)</label>
<input
type="text"
value={formData.bcc}
onChange={(e) => setFormData({ ...formData, bcc: e.target.value })}
placeholder="숨은참조 이메일 (쉼표로 구분)"
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400"
/>
</div>
{/* 내용 */}
<div>
<label className="block text-white/80 text-sm font-medium mb-2"> *</label>
<textarea
value={formData.body}
onChange={(e) => setFormData({ ...formData, body: e.target.value })}
placeholder="메일 내용을 입력하세요 (HTML 가능)"
rows={8}
className="w-full px-3 py-2 bg-white/10 border border-white/20 rounded-lg text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-primary-400 resize-none"
/>
</div>
<div className="text-white/50 text-xs">
* . .
</div>
</div>
{/* Footer */}
<div className="flex items-center justify-end gap-2 px-6 py-4 border-t border-white/10 bg-black/20">
<button
onClick={onClose}
disabled={processing}
className="px-4 py-2 rounded-lg bg-white/10 hover:bg-white/20 text-white transition-colors disabled:opacity-50"
>
</button>
<button
onClick={() => handleSubmit('queue')}
disabled={processing}
className="px-4 py-2 rounded-lg bg-blue-500 hover:bg-blue-600 text-white transition-colors flex items-center gap-2 disabled:opacity-50"
>
{processing ? (
<>
<div className="w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin" />
...
</>
) : (
<>
<Mail className="w-4 h-4" />
</>
)}
</button>
<button
onClick={() => handleSubmit('direct')}
disabled={processing}
className="px-4 py-2 rounded-lg bg-green-500 hover:bg-green-600 text-white transition-colors flex items-center gap-2 disabled:opacity-50"
>
{processing ? (
<>
<div className="w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin" />
...
</>
) : (
<>
<Send className="w-4 h-4" />
</>
)}
</button>
<button
onClick={() => handleSubmit('outlook')}
disabled={processing}
className="px-4 py-2 rounded-lg bg-orange-500 hover:bg-orange-600 text-white transition-colors flex items-center gap-2 disabled:opacity-50"
>
{processing ? (
<>
<div className="w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin" />
...
</>
) : (
<>
<Mail className="w-4 h-4" />
Outlook
</>
)}
</button>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,519 @@
import { useState, useEffect } from 'react';
import { X, Save, Trash2, Plus, RefreshCw } from 'lucide-react';
import { comms } from '@/communication';
import { PartListItem } from '@/types';
interface PartListDialogProps {
projectIdx: number;
projectName: string;
onClose: () => void;
}
export function PartListDialog({ projectIdx, projectName, onClose }: PartListDialogProps) {
const [parts, setParts] = useState<PartListItem[]>([]);
const [loading, setLoading] = useState(false);
const [editingIdx, setEditingIdx] = useState<number | null>(null);
const [editForm, setEditForm] = useState<Partial<PartListItem>>({});
// ESC 키 핸들러
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
if (editingIdx !== null) {
setEditingIdx(null);
setEditForm({});
} else {
onClose();
}
}
};
window.addEventListener('keydown', handleKeyDown);
return () => window.removeEventListener('keydown', handleKeyDown);
}, [editingIdx, onClose]);
// 데이터 로드
const loadParts = async () => {
setLoading(true);
try {
console.log('[PartList] 로드 시작, projectIdx:', projectIdx);
const result = await comms.getPartList(projectIdx);
console.log('[PartList] 결과:', result);
if (result.Success && result.Data) {
console.log('[PartList] 데이터 개수:', result.Data.length);
setParts(result.Data);
} else {
console.error('[PartList] 실패:', result.Message);
alert(result.Message || '파트리스트 로드 실패');
}
} catch (error) {
console.error('파트리스트 로드 실패:', error);
alert('파트리스트 로드 중 오류: ' + error);
} finally {
setLoading(false);
}
};
useEffect(() => {
loadParts();
}, [projectIdx]);
// 편집 시작
const startEdit = (part: PartListItem) => {
setEditingIdx(part.idx);
setEditForm({ ...part });
};
// 편집 취소
const cancelEdit = () => {
setEditingIdx(null);
setEditForm({});
};
// 저장
const handleSave = async () => {
if (!editForm.itemname || !editForm.item) {
alert('품명과 자재번호는 필수입니다.');
return;
}
try {
const result = await comms.savePartList(
editingIdx || 0,
projectIdx,
editForm.itemgroup || '',
editForm.itemname || '',
editForm.item || '',
editForm.itemmodel || '',
editForm.itemscale || '',
editForm.itemunit || '',
editForm.qty || 0,
editForm.price || 0,
editForm.itemsupply || '',
editForm.itemsupplyidx || 0,
editForm.itemmanu || '',
editForm.itemsid || '',
editForm.option1 || '',
editForm.remark || '',
editForm.no || 0,
editForm.qtybuy || 0
);
if (result.Success) {
await loadParts();
cancelEdit();
} else {
alert(result.Message || '저장 실패');
}
} catch (error) {
console.error('저장 실패:', error);
alert('저장 중 오류가 발생했습니다.');
}
};
// 삭제
const handleDelete = async (idx: number) => {
if (!confirm('정말 삭제하시겠습니까?')) return;
try {
const result = await comms.deletePartList(idx);
if (result.Success) {
await loadParts();
} else {
alert(result.Message || '삭제 실패');
}
} catch (error) {
console.error('삭제 실패:', error);
alert('삭제 중 오류가 발생했습니다.');
}
};
// 새 항목 추가
const addNew = () => {
setEditingIdx(-1);
setEditForm({
Project: projectIdx,
itemgroup: '',
itemname: '',
item: '',
itemmodel: '',
itemscale: '',
itemunit: 'EA',
qty: 1,
price: 0,
itemsupply: '',
itemsupplyidx: 0,
itemmanu: '',
itemsid: '',
option1: '',
remark: '',
no: 0,
qtybuy: 0,
});
};
// 금액 계산
const getAmount = (qty: number, price: number) => qty * price;
return (
<div className="fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4">
<div className="bg-slate-800/95 backdrop-blur rounded-lg w-full max-w-7xl max-h-[90vh] flex flex-col shadow-2xl border border-white/10">
{/* 헤더 */}
<div className="flex items-center justify-between p-4 border-b border-white/10 bg-primary-600/30 sticky top-0 z-10">
<div>
<h2 className="text-lg font-bold text-white"></h2>
<p className="text-sm text-white/60">{projectName}</p>
</div>
<div className="flex items-center gap-2">
<button
onClick={addNew}
className="flex items-center gap-2 px-3 py-1.5 bg-primary-600 hover:bg-primary-500 text-white rounded transition-colors"
>
<Plus className="w-4 h-4" />
<span className="text-sm"></span>
</button>
<button
onClick={loadParts}
disabled={loading}
className="p-2 hover:bg-white/10 rounded transition-colors disabled:opacity-50"
title="새로고침"
>
<RefreshCw className={`w-5 h-5 text-white/70 ${loading ? 'animate-spin' : ''}`} />
</button>
<button
onClick={onClose}
className="p-2 hover:bg-white/10 rounded transition-colors"
>
<X className="w-5 h-5 text-white/70" />
</button>
</div>
</div>
{/* 테이블 */}
<div className="flex-1 overflow-auto p-4">
{loading && parts.length === 0 ? (
<div className="flex items-center justify-center h-64">
<RefreshCw className="w-8 h-8 text-primary-500 animate-spin" />
</div>
) : (
<table className="w-full border-collapse">
<thead className="sticky top-0 bg-slate-700/50 backdrop-blur z-10">
<tr className="border-b border-white/10">
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-12">No</th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-24"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-16"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-20"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-28"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-center text-xs text-white/70 font-medium w-20"></th>
</tr>
</thead>
<tbody>
{parts.length === 0 && !loading ? (
<tr>
<td colSpan={11} className="px-2 py-8 text-center text-white/40 text-sm">
.
</td>
</tr>
) : (
parts.map((part) => {
const isEditing = editingIdx === part.idx;
return (
<tr
key={part.idx}
className={`border-b border-white/5 hover:bg-white/5 transition-colors ${
isEditing ? 'bg-primary-500/10' : ''
}`}
>
<td className="px-2 py-2">
{isEditing ? (
<input
type="number"
value={editForm.no || 0}
onChange={(e) => setEditForm({ ...editForm, no: parseInt(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.no || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemgroup || ''}
onChange={(e) => setEditForm({ ...editForm, itemgroup: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemgroup || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemname || ''}
onChange={(e) => setEditForm({ ...editForm, itemname: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
required
/>
) : (
<span className="text-white/90 text-xs font-medium">{part.itemname || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemmodel || ''}
onChange={(e) => setEditForm({ ...editForm, itemmodel: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemmodel || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemscale || ''}
onChange={(e) => setEditForm({ ...editForm, itemscale: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemscale || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemunit || ''}
onChange={(e) => setEditForm({ ...editForm, itemunit: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemunit || ''}</span>
)}
</td>
<td className="px-2 py-2 text-right">
{isEditing ? (
<input
type="number"
value={editForm.qty || 0}
onChange={(e) => setEditForm({ ...editForm, qty: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
) : (
<span className="text-white/70 text-xs">{part.qty?.toLocaleString() || 0}</span>
)}
</td>
<td className="px-2 py-2 text-right">
{isEditing ? (
<input
type="number"
value={editForm.price || 0}
onChange={(e) => setEditForm({ ...editForm, price: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
) : (
<span className="text-white/70 text-xs">{part.price?.toLocaleString() || 0}</span>
)}
</td>
<td className="px-2 py-2 text-right">
<span className="text-white/90 text-xs font-medium">
{getAmount(
isEditing ? editForm.qty || 0 : part.qty || 0,
isEditing ? editForm.price || 0 : part.price || 0
).toLocaleString()}
</span>
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemsupply || ''}
onChange={(e) => setEditForm({ ...editForm, itemsupply: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemsupply || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<div className="flex items-center justify-center gap-1">
<button
onClick={handleSave}
className="p-1 hover:bg-green-500/20 text-green-400 rounded transition-colors"
title="저장"
>
<Save className="w-4 h-4" />
</button>
<button
onClick={cancelEdit}
className="p-1 hover:bg-white/10 text-white/50 rounded transition-colors"
title="취소"
>
<X className="w-4 h-4" />
</button>
</div>
) : (
<div className="flex items-center justify-center gap-1">
<button
onClick={() => startEdit(part)}
className="p-1 hover:bg-white/10 text-white/70 rounded transition-colors text-xs"
>
</button>
<button
onClick={() => handleDelete(part.idx)}
className="p-1 hover:bg-red-500/20 text-red-400 rounded transition-colors"
title="삭제"
>
<Trash2 className="w-4 h-4" />
</button>
</div>
)}
</td>
</tr>
);
})
)}
{/* 새 항목 추가 행 */}
{editingIdx === -1 && (
<tr className="border-b border-white/5 bg-primary-500/10">
<td className="px-2 py-2">
<input
type="number"
value={editForm.no || 0}
onChange={(e) => setEditForm({ ...editForm, no: parseInt(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemgroup || ''}
onChange={(e) => setEditForm({ ...editForm, itemgroup: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="그룹"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemname || ''}
onChange={(e) => setEditForm({ ...editForm, itemname: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="품명 *"
required
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemmodel || ''}
onChange={(e) => setEditForm({ ...editForm, itemmodel: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="모델"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemscale || ''}
onChange={(e) => setEditForm({ ...editForm, itemscale: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="규격"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemunit || ''}
onChange={(e) => setEditForm({ ...editForm, itemunit: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="단위"
/>
</td>
<td className="px-2 py-2 text-right">
<input
type="number"
value={editForm.qty || 0}
onChange={(e) => setEditForm({ ...editForm, qty: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
</td>
<td className="px-2 py-2 text-right">
<input
type="number"
value={editForm.price || 0}
onChange={(e) => setEditForm({ ...editForm, price: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
</td>
<td className="px-2 py-2 text-right">
<span className="text-white/90 text-xs font-medium">
{getAmount(editForm.qty || 0, editForm.price || 0).toLocaleString()}
</span>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemsupply || ''}
onChange={(e) => setEditForm({ ...editForm, itemsupply: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="공급처"
/>
</td>
<td className="px-2 py-2">
<div className="flex items-center justify-center gap-1">
<button
onClick={handleSave}
className="p-1 hover:bg-green-500/20 text-green-400 rounded transition-colors"
title="저장"
>
<Save className="w-4 h-4" />
</button>
<button
onClick={cancelEdit}
className="p-1 hover:bg-white/10 text-white/50 rounded transition-colors"
title="취소"
>
<X className="w-4 h-4" />
</button>
</div>
</td>
</tr>
)}
</tbody>
</table>
)}
</div>
{/* 합계 */}
{parts.length > 0 && (
<div className="p-4 border-t border-white/10 bg-slate-900/50">
<div className="flex justify-end gap-4 text-sm">
<span className="text-white/70">
<span className="text-white font-medium">{parts.length}</span>
</span>
<span className="text-white/70">
: <span className="text-primary-400 font-medium">
{parts.reduce((sum, part) => sum + getAmount(part.qty || 0, part.price || 0), 0).toLocaleString()}
</span>
</span>
</div>
</div>
)}
</div>
</div>
);
}

View File

@@ -1 +1,2 @@
export { ProjectDetailDialog } from './ProjectDetailDialog';
export { PartListDialog } from './PartListDialog';

View File

@@ -101,6 +101,24 @@ export function Dashboard() {
setUrgentTodos(allUrgentTodos.slice(start, end));
}, [todoPage, allUrgentTodos]);
// ESC 키로 모달 닫기
useEffect(() => {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
if (showTodoAddModal) {
setShowTodoAddModal(false);
} else if (showTodoEditModal) {
setShowTodoEditModal(false);
}
}
};
if (showTodoAddModal || showTodoEditModal) {
document.addEventListener('keydown', handleEscape);
return () => document.removeEventListener('keydown', handleEscape);
}
}, [showTodoAddModal, showTodoEditModal]);
const loadDashboardData = useCallback(async () => {
try {
// 오늘 날짜 (로컬 시간 기준)
@@ -225,6 +243,7 @@ export function Dashboard() {
const getPriorityText = (seqno: number) => {
switch (seqno) {
case -1: return '낮음';
case 1: return '중요';
case 2: return '매우 중요';
case 3: return '긴급';
@@ -234,6 +253,7 @@ export function Dashboard() {
const getPriorityClass = (seqno: number) => {
switch (seqno) {
case -1: return 'bg-white/5 text-white/40';
case 1: return 'bg-primary-500/20 text-primary-300';
case 2: return 'bg-warning-500/20 text-warning-300';
case 3: return 'bg-danger-500/20 text-danger-300';
@@ -782,10 +802,11 @@ export function Dashboard() {
onChange={(e) => setTodoFormData(prev => ({ ...prev, seqno: parseInt(e.target.value) as TodoPriority }))}
className="w-full bg-white/20 backdrop-blur-sm border border-white/30 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-primary-400 transition-all"
>
<option value={0}></option>
<option value={1}></option>
<option value={2}> </option>
<option value={3}></option>
<option value={2}> </option>
<option value={1}></option>
<option value={0}></option>
<option value={-1}></option>
</select>
</div>
<div className="flex items-end">
@@ -844,10 +865,23 @@ export function Dashboard() {
<Edit2 className="w-5 h-5 mr-2" />
</h2>
<div className="flex items-center space-x-2">
{editingTodo.status !== '5' && (
<button
type="button"
onClick={handleTodoComplete}
disabled={processing}
className="bg-success-500 hover:bg-success-600 text-white px-3 py-1.5 rounded-lg transition-colors flex items-center disabled:opacity-50 text-sm"
>
<CheckCircle className="w-4 h-4 mr-1" />
</button>
)}
<button onClick={() => setShowTodoEditModal(false)} className="text-white/70 hover:text-white transition-colors">
<X className="w-6 h-6" />
</button>
</div>
</div>
{/* 내용 */}
<div className="p-6 space-y-4">
@@ -929,10 +963,11 @@ export function Dashboard() {
onChange={(e) => setTodoFormData(prev => ({ ...prev, seqno: parseInt(e.target.value) as TodoPriority }))}
className="w-full bg-white/20 backdrop-blur-sm border border-white/30 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-primary-400 transition-all"
>
<option value={0}></option>
<option value={1}></option>
<option value={2}> </option>
<option value={3}></option>
<option value={2}> </option>
<option value={1}></option>
<option value={0}></option>
<option value={-1}></option>
</select>
</div>
<div className="flex items-end">
@@ -950,40 +985,8 @@ export function Dashboard() {
</div>
{/* 푸터 */}
<div className="px-6 py-4 border-t border-white/10 flex justify-between">
{/* 왼쪽: 삭제 버튼 */}
<div>
<button
type="button"
onClick={handleTodoDelete}
disabled={processing}
className="bg-danger-500 hover:bg-danger-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<Trash2 className="w-4 h-4 mr-2" />
</button>
</div>
{/* 오른쪽: 취소, 완료, 수정 버튼 */}
<div className="px-6 py-4 border-t border-white/10 flex justify-end">
<div className="flex space-x-3">
<button
type="button"
onClick={() => setShowTodoEditModal(false)}
className="bg-white/20 hover:bg-white/30 text-white px-4 py-2 rounded-lg transition-colors"
>
</button>
{editingTodo.status !== '5' && (
<button
type="button"
onClick={handleTodoComplete}
disabled={processing}
className="bg-success-500 hover:bg-success-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<CheckCircle className="w-4 h-4 mr-2" />
</button>
)}
<button
type="button"
onClick={handleTodoUpdate}
@@ -997,6 +1000,15 @@ export function Dashboard() {
)}
</button>
<button
type="button"
onClick={handleTodoDelete}
disabled={processing}
className="bg-danger-500 hover:bg-danger-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<Trash2 className="w-4 h-4 mr-2" />
</button>
</div>
</div>
</div>

View File

@@ -4,6 +4,7 @@ import {
Search,
RefreshCw,
Copy,
Info,
Plus,
Calendar,
} from 'lucide-react';
@@ -567,8 +568,8 @@ export function Jobreport() {
<thead className="bg-white/10">
<tr>
<th className="px-2 py-3 text-center text-xs font-medium text-white/70 uppercase w-10"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase w-24"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase" style={{ width: '35%' }}></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase"></th>
<th className="px-4 py-3 text-left text-xs font-medium text-white/70 uppercase"></th>
@@ -596,38 +597,51 @@ export function Jobreport() {
paginatedList.map((item) => (
<tr
key={item.idx}
className={`hover:bg-white/5 transition-colors cursor-pointer ${item.type === '휴가' ? 'bg-gradient-to-r from-lime-400/30 via-emerald-400/20 to-teal-400/30' : ''}`}
onClick={() => openEditModal(item)}
className="hover:bg-white/5 transition-colors"
>
<td className="px-2 py-3 text-center">
<button
<td
className="px-2 py-3 text-center cursor-pointer hover:bg-primary-500/10 transition-colors"
onClick={(e) => openCopyModal(item, e)}
className="text-white/40 hover:text-primary-400 transition-colors"
title="복사하여 새로 작성"
>
<Copy className="w-4 h-4" />
<Copy className="w-4 h-4 mx-auto text-white/40" />
</td>
<td className="px-4 py-3 text-white text-sm cursor-pointer" onClick={() => openEditModal(item)}>{formatDate(item.pdate)}</td>
<td className={`px-4 py-3 text-sm font-medium ${item.pidx && item.pidx > 0 ? 'text-white' : 'text-white/50'}`}>
<div className="flex items-center space-x-2">
{item.pidx && item.pidx > 0 && (
<button
onClick={(e) => {
e.stopPropagation();
window.open(`#/project-detail/${item.pidx}`, '_blank');
}}
className="text-primary-400 hover:text-primary-300 transition-colors flex-shrink-0"
title="프로젝트 정보 보기"
>
<Info className="w-4 h-4" />
</button>
</td>
<td className="px-4 py-3 text-white text-sm">{formatDate(item.pdate)}</td>
<td className={`px-4 py-3 text-sm font-medium max-w-xs truncate ${item.pidx && item.pidx > 0 ? 'text-white' : 'text-white/50'}`} title={item.projectName}>
)}
<span className="truncate cursor-pointer" onClick={() => openEditModal(item)} title={item.projectName}>
{item.projectName || '-'}
</span>
</div>
</td>
<td className="px-4 py-3 text-white text-sm">{item.type || '-'}</td>
<td className="px-4 py-3 text-sm">
<td className="px-4 py-3 text-white text-sm cursor-pointer" onClick={() => openEditModal(item)}>{item.type || '-'}</td>
<td className="px-4 py-3 text-sm cursor-pointer" onClick={() => openEditModal(item)}>
<span className={`px-2 py-1 rounded text-xs ${item.status?.includes('완료') ? 'bg-green-500/20 text-green-400' : 'bg-white/20 text-white/70'
}`}>
{item.status || '-'}
</span>
</td>
<td className="px-4 py-3 text-white text-sm">
<td className="px-4 py-3 text-white text-sm cursor-pointer" onClick={() => openEditModal(item)}>
{item.hrs || 0}
</td>
{canViewOT && (
<td className="px-4 py-3 text-white text-sm">
<td className="px-4 py-3 text-white text-sm cursor-pointer" onClick={() => openEditModal(item)}>
{item.ot ? <span className="text-warning-400">{item.ot}</span> : '-'}
</td>
)}
<td className="px-4 py-3 text-white text-sm">{item.name || item.id || '-'}</td>
<td className="px-4 py-3 text-white text-sm cursor-pointer" onClick={() => openEditModal(item)}>{item.name || item.id || '-'}</td>
</tr>
))
)}

View File

@@ -1,7 +1,8 @@
import { useState, useEffect } from 'react';
import { Mail, Search, RefreshCw, Calendar } from 'lucide-react';
import { Mail, Search, RefreshCw, Calendar, ChevronLeft, ChevronRight } from 'lucide-react';
import { comms } from '@/communication';
import { MailItem, UserInfo } from '@/types';
import { MailTestDialog } from '@/components/mail/MailTestDialog';
export function MailList() {
const [mailList, setMailList] = useState<MailItem[]>([]);
@@ -11,7 +12,10 @@ export function MailList() {
const [searchKey, setSearchKey] = useState('');
const [selectedItem, setSelectedItem] = useState<MailItem | null>(null);
const [showModal, setShowModal] = useState(false);
const [showTestDialog, setShowTestDialog] = useState(false);
const [currentUser, setCurrentUser] = useState<UserInfo | null>(null);
const [currentPage, setCurrentPage] = useState(1);
const pageSize = 25;
const formatDateLocal = (date: Date) => {
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
@@ -78,9 +82,17 @@ export function MailList() {
alert('시작일은 종료일보다 늦을 수 없습니다.');
return;
}
setCurrentPage(1);
loadData();
};
// 페이징 계산
const totalPages = Math.ceil(mailList.length / pageSize);
const paginatedList = mailList.slice(
(currentPage - 1) * pageSize,
currentPage * pageSize
);
const handleRowClick = (item: MailItem) => {
// 레벨 9 이상(개발자)만 상세보기 가능
if (!currentUser || currentUser.Level < 9) {
@@ -151,6 +163,16 @@ export function MailList() {
)}
</button>
{currentUser && currentUser.Level >= 9 && (
<button
onClick={() => setShowTestDialog(true)}
className="h-10 bg-green-500 hover:bg-green-600 text-white px-6 rounded-lg transition-colors flex items-center justify-center"
>
<Mail className="w-4 h-4 mr-2" />
</button>
)}
</div>
</div>
@@ -164,7 +186,7 @@ export function MailList() {
<span className="text-white/60 text-sm">{mailList.length}</span>
</div>
<div className="divide-y divide-white/10 max-h-[calc(100vh-300px)] overflow-y-auto">
<div className="divide-y divide-white/10 max-h-[calc(100vh-380px)] overflow-y-auto">
{loading ? (
<div className="px-6 py-8 text-center">
<div className="flex items-center justify-center">
@@ -178,7 +200,7 @@ export function MailList() {
<p className="text-white/50"> .</p>
</div>
) : (
mailList.map((item) => (
paginatedList.map((item) => (
<div
key={item.idx}
className={`px-6 py-4 transition-colors ${currentUser && currentUser.Level >= 9 ? 'hover:bg-white/5 cursor-pointer' : 'cursor-default'}`}
@@ -215,6 +237,29 @@ export function MailList() {
))
)}
</div>
{/* 페이징 */}
{totalPages > 1 && (
<div className="flex items-center justify-center gap-2 px-6 py-3 border-t border-white/10">
<button
onClick={() => setCurrentPage((p) => Math.max(1, p - 1))}
disabled={currentPage === 1}
className="p-1 rounded hover:bg-white/10 disabled:opacity-30 text-white/70"
>
<ChevronLeft className="w-5 h-5" />
</button>
<span className="text-white/70 text-sm">
{currentPage} / {totalPages}
</span>
<button
onClick={() => setCurrentPage((p) => Math.min(totalPages, p + 1))}
disabled={currentPage === totalPages}
className="p-1 rounded hover:bg-white/10 disabled:opacity-30 text-white/70"
>
<ChevronRight className="w-5 h-5" />
</button>
</div>
)}
</div>
{/* 상세 모달 */}
@@ -283,6 +328,15 @@ export function MailList() {
</div>
</div>
)}
{/* 메일 테스트 다이얼로그 */}
<MailTestDialog
isOpen={showTestDialog}
onClose={() => {
setShowTestDialog(false);
loadData(); // 목록 새로고침
}}
/>
</div>
);
}

View File

@@ -0,0 +1,588 @@
import { useState, useEffect } from 'react';
import {
ClipboardList,
Search,
RefreshCw,
Plus,
Save,
Trash2,
X,
DollarSign,
} from 'lucide-react';
import { comms } from '@/communication';
import { PartListItem } from '@/types';
import { useSearchParams } from 'react-router-dom';
export function PartList() {
const [searchParams] = useSearchParams();
const projectIdx = parseInt(searchParams.get('idx') || '0');
const projectName = searchParams.get('name') || '';
const [parts, setParts] = useState<PartListItem[]>([]);
const [filteredParts, setFilteredParts] = useState<PartListItem[]>([]);
const [loading, setLoading] = useState(false);
const [searchKey, setSearchKey] = useState('');
const [editingIdx, setEditingIdx] = useState<number | null>(null);
const [editForm, setEditForm] = useState<Partial<PartListItem>>({});
const [showSummary, setShowSummary] = useState(false);
// 데이터 로드
const loadParts = async () => {
setLoading(true);
try {
console.log('[PartList] 로드 시작, projectIdx:', projectIdx);
const result = await comms.getPartList(projectIdx);
console.log('[PartList] 결과:', result);
if (result.Success && result.Data) {
console.log('[PartList] 데이터 개수:', result.Data.length);
setParts(result.Data);
setFilteredParts(result.Data);
} else {
console.error('[PartList] 실패:', result.Message);
alert(result.Message || '파트리스트 로드 실패');
}
} catch (error) {
console.error('파트리스트 로드 실패:', error);
alert('파트리스트 로드 중 오류: ' + error);
} finally {
setLoading(false);
}
};
useEffect(() => {
if (projectIdx > 0) {
loadParts();
}
}, [projectIdx]);
// 검색
useEffect(() => {
if (!searchKey.trim()) {
setFilteredParts(parts);
return;
}
const search = searchKey.toLowerCase();
const filtered = parts.filter((part) => {
return (
part.itemsid?.toLowerCase().includes(search) ||
part.itemname?.toLowerCase().includes(search) ||
part.itemmodel?.toLowerCase().includes(search)
);
});
setFilteredParts(filtered);
}, [searchKey, parts]);
// 편집 시작
const startEdit = (part: PartListItem) => {
setEditingIdx(part.idx);
setEditForm({ ...part });
};
// 편집 취소
const cancelEdit = () => {
setEditingIdx(null);
setEditForm({});
};
// 저장
const handleSave = async () => {
if (!editForm.itemname || !editForm.item) {
alert('품명과 자재번호는 필수입니다.');
return;
}
try {
const result = await comms.savePartList(
editingIdx || 0,
projectIdx,
editForm.itemgroup || '',
editForm.itemname || '',
editForm.item || '',
editForm.itemmodel || '',
'', // itemscale 제거됨
editForm.itemunit || '',
editForm.qty || 0,
editForm.price || 0,
editForm.itemsupply || '',
editForm.itemsupplyidx || 0,
editForm.itemmanu || '',
editForm.itemsid || '',
editForm.option1 || '',
editForm.remark || '',
editForm.no || 0,
editForm.qtybuy || 0
);
if (result.Success) {
await loadParts();
cancelEdit();
} else {
alert(result.Message || '저장 실패');
}
} catch (error) {
console.error('저장 실패:', error);
alert('저장 중 오류가 발생했습니다.');
}
};
// 삭제
const handleDelete = async (idx: number) => {
if (!confirm('정말 삭제하시겠습니까?')) return;
try {
const result = await comms.deletePartList(idx);
if (result.Success) {
await loadParts();
} else {
alert(result.Message || '삭제 실패');
}
} catch (error) {
console.error('삭제 실패:', error);
alert('삭제 중 오류가 발생했습니다.');
}
};
// 새 항목 추가
const addNew = () => {
setEditingIdx(-1);
setEditForm({
Project: projectIdx,
itemgroup: '',
itemname: '',
item: '',
itemmodel: '',
itemunit: 'EA',
qty: 1,
price: 0,
itemsupply: '',
itemsupplyidx: 0,
itemmanu: '',
itemsid: '',
option1: '',
remark: '',
no: 0,
qtybuy: 0,
});
};
// 금액 계산
const getAmount = (qty: number, price: number) => qty * price;
// 합계 계산
const totalAmount = filteredParts.reduce((sum, part) => sum + getAmount(part.qty || 0, part.price || 0), 0);
// 그룹별 합계
const groupSummary = filteredParts.reduce((acc, part) => {
const group = part.itemgroup || '미분류';
if (!acc[group]) {
acc[group] = { count: 0, amount: 0 };
}
acc[group].count++;
acc[group].amount += getAmount(part.qty || 0, part.price || 0);
return acc;
}, {} as Record<string, { count: number; amount: number }>);
return (
<div className="p-4 space-y-4">
{/* 헤더 */}
<div className="glass-effect rounded-xl p-4">
<div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-3">
<ClipboardList className="w-6 h-6 text-amber-400" />
<div>
<h1 className="text-xl font-bold text-white"></h1>
<p className="text-sm text-white/60">{projectName}</p>
</div>
<span className="text-white/50 text-sm">({filteredParts.length})</span>
</div>
<div className="flex items-center gap-2">
<button
onClick={addNew}
className="flex items-center gap-2 px-3 py-1.5 bg-primary-600 hover:bg-primary-500 text-white rounded transition-colors"
>
<Plus className="w-4 h-4" />
<span className="text-sm"></span>
</button>
<button
onClick={loadParts}
disabled={loading}
className="p-2 hover:bg-white/10 rounded transition-colors disabled:opacity-50"
title="새로고침"
>
<RefreshCw className={`w-5 h-5 text-white/70 ${loading ? 'animate-spin' : ''}`} />
</button>
</div>
</div>
{/* 검색 */}
<div className="flex items-center gap-2 bg-white/5 rounded-lg px-3 py-2">
<Search className="w-4 h-4 text-white/50" />
<input
type="text"
value={searchKey}
onChange={(e) => setSearchKey(e.target.value)}
placeholder="SID, 품명, 모델로 검색..."
className="flex-1 bg-transparent text-white placeholder-white/30 focus:outline-none text-sm"
/>
{searchKey && (
<button onClick={() => setSearchKey('')} className="text-white/50 hover:text-white/70">
<X className="w-4 h-4" />
</button>
)}
</div>
</div>
{/* 테이블 */}
<div className="glass-effect rounded-xl overflow-hidden">
<div className="overflow-x-auto">
{loading && parts.length === 0 ? (
<div className="flex items-center justify-center h-64">
<RefreshCw className="w-8 h-8 text-primary-500 animate-spin" />
</div>
) : (
<table className="w-full">
<thead className="bg-slate-700/50 sticky top-0 z-10">
<tr className="border-b border-white/10">
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-12">No</th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-24"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-24">SID</th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-16"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-20"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-28"></th>
<th className="px-2 py-2 text-right text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-left text-xs text-white/70 font-medium w-32"></th>
<th className="px-2 py-2 text-center text-xs text-white/70 font-medium w-20"></th>
</tr>
</thead>
<tbody>
{filteredParts.length === 0 && !loading ? (
<tr>
<td colSpan={11} className="px-2 py-8 text-center text-white/40 text-sm">
{searchKey ? '검색 결과가 없습니다.' : '등록된 파트가 없습니다.'}
</td>
</tr>
) : (
filteredParts.map((part) => {
const isEditing = editingIdx === part.idx;
return (
<tr
key={part.idx}
className={`border-b border-white/5 hover:bg-white/5 transition-colors ${
isEditing ? 'bg-primary-500/10' : ''
}`}
>
<td className="px-2 py-2">
{isEditing ? (
<input
type="number"
value={editForm.no || 0}
onChange={(e) => setEditForm({ ...editForm, no: parseInt(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.no || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemgroup || ''}
onChange={(e) => setEditForm({ ...editForm, itemgroup: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemgroup || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemsid || ''}
onChange={(e) => setEditForm({ ...editForm, itemsid: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemsid || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemname || ''}
onChange={(e) => setEditForm({ ...editForm, itemname: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
required
/>
) : (
<span className="text-white/90 text-xs font-medium">{part.itemname || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemmodel || ''}
onChange={(e) => setEditForm({ ...editForm, itemmodel: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemmodel || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemunit || ''}
onChange={(e) => setEditForm({ ...editForm, itemunit: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemunit || ''}</span>
)}
</td>
<td className="px-2 py-2 text-right">
{isEditing ? (
<input
type="number"
value={editForm.qty || 0}
onChange={(e) => setEditForm({ ...editForm, qty: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
) : (
<span className="text-white/70 text-xs">{part.qty?.toLocaleString() || 0}</span>
)}
</td>
<td className="px-2 py-2 text-right">
{isEditing ? (
<input
type="number"
value={editForm.price || 0}
onChange={(e) => setEditForm({ ...editForm, price: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
) : (
<span className="text-white/70 text-xs">{part.price?.toLocaleString() || 0}</span>
)}
</td>
<td className="px-2 py-2 text-right">
<span className="text-white/90 text-xs font-medium">
{getAmount(
isEditing ? editForm.qty || 0 : part.qty || 0,
isEditing ? editForm.price || 0 : part.price || 0
).toLocaleString()}
</span>
</td>
<td className="px-2 py-2">
{isEditing ? (
<input
type="text"
value={editForm.itemsupply || ''}
onChange={(e) => setEditForm({ ...editForm, itemsupply: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
) : (
<span className="text-white/70 text-xs">{part.itemsupply || ''}</span>
)}
</td>
<td className="px-2 py-2">
{isEditing ? (
<div className="flex items-center justify-center gap-1">
<button
onClick={handleSave}
className="p-1 hover:bg-green-500/20 text-green-400 rounded transition-colors"
title="저장"
>
<Save className="w-4 h-4" />
</button>
<button
onClick={cancelEdit}
className="p-1 hover:bg-white/10 text-white/50 rounded transition-colors"
title="취소"
>
<X className="w-4 h-4" />
</button>
</div>
) : (
<div className="flex items-center justify-center gap-1">
<button
onClick={() => startEdit(part)}
className="p-1 hover:bg-white/10 text-white/70 rounded transition-colors text-xs"
>
</button>
<button
onClick={() => handleDelete(part.idx)}
className="p-1 hover:bg-red-500/20 text-red-400 rounded transition-colors"
title="삭제"
>
<Trash2 className="w-4 h-4" />
</button>
</div>
)}
</td>
</tr>
);
})
)}
{/* 새 항목 추가 행 */}
{editingIdx === -1 && (
<tr className="border-b border-white/5 bg-primary-500/10">
<td className="px-2 py-2">
<input
type="number"
value={editForm.no || 0}
onChange={(e) => setEditForm({ ...editForm, no: parseInt(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemgroup || ''}
onChange={(e) => setEditForm({ ...editForm, itemgroup: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="그룹"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemsid || ''}
onChange={(e) => setEditForm({ ...editForm, itemsid: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="SID"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemname || ''}
onChange={(e) => setEditForm({ ...editForm, itemname: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="품명 *"
required
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemmodel || ''}
onChange={(e) => setEditForm({ ...editForm, itemmodel: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="모델"
/>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemunit || ''}
onChange={(e) => setEditForm({ ...editForm, itemunit: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="단위"
/>
</td>
<td className="px-2 py-2 text-right">
<input
type="number"
value={editForm.qty || 0}
onChange={(e) => setEditForm({ ...editForm, qty: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
</td>
<td className="px-2 py-2 text-right">
<input
type="number"
value={editForm.price || 0}
onChange={(e) => setEditForm({ ...editForm, price: parseFloat(e.target.value) || 0 })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none text-right"
/>
</td>
<td className="px-2 py-2 text-right">
<span className="text-white/90 text-xs font-medium">
{getAmount(editForm.qty || 0, editForm.price || 0).toLocaleString()}
</span>
</td>
<td className="px-2 py-2">
<input
type="text"
value={editForm.itemsupply || ''}
onChange={(e) => setEditForm({ ...editForm, itemsupply: e.target.value })}
className="w-full bg-slate-700/50 text-white text-xs px-2 py-1 rounded border border-white/10 focus:border-primary-500 focus:outline-none"
placeholder="공급처"
/>
</td>
<td className="px-2 py-2">
<div className="flex items-center justify-center gap-1">
<button
onClick={handleSave}
className="p-1 hover:bg-green-500/20 text-green-400 rounded transition-colors"
title="저장"
>
<Save className="w-4 h-4" />
</button>
<button
onClick={cancelEdit}
className="p-1 hover:bg-white/10 text-white/50 rounded transition-colors"
title="취소"
>
<X className="w-4 h-4" />
</button>
</div>
</td>
</tr>
)}
</tbody>
</table>
)}
</div>
</div>
{/* 하단 정보 */}
<div className="flex gap-4">
{/* 좌측: 비용 요약 */}
<div className="glass-effect rounded-xl p-4 flex-1">
<button
onClick={() => setShowSummary(!showSummary)}
className="flex items-center gap-2 text-amber-400 hover:text-amber-300 mb-3"
>
<DollarSign className="w-5 h-5" />
<span className="font-medium"> </span>
</button>
{showSummary && (
<div className="space-y-2">
{Object.entries(groupSummary).map(([group, data]) => (
<div key={group} className="flex items-center justify-between text-sm border-b border-white/5 pb-2">
<span className="text-white/70">{group}</span>
<div className="flex items-center gap-4">
<span className="text-white/50 text-xs">{data.count}</span>
<span className="text-primary-400 font-medium">{data.amount.toLocaleString()}</span>
</div>
</div>
))}
</div>
)}
</div>
{/* 우측: 합계 */}
<div className="glass-effect rounded-xl p-4 min-w-[300px]">
<div className="flex justify-between items-center mb-2">
<span className="text-white/70 text-sm"> </span>
<span className="text-white font-medium">{filteredParts.length}</span>
</div>
<div className="flex justify-between items-center">
<span className="text-white/70 text-sm"> </span>
<span className="text-amber-400 font-bold text-lg">{totalAmount.toLocaleString()}</span>
</div>
</div>
</div>
</div>
);
}

View File

@@ -8,10 +8,14 @@ import {
User,
Calendar,
ExternalLink,
ClipboardList,
Mail,
Edit2,
} from 'lucide-react';
import { comms } from '@/communication';
import { ProjectListItem, ProjectListResponse } from '@/types';
import { ProjectDetailDialog } from '@/components/project';
import clsx from 'clsx';
// 상태별 색상 매핑
const statusColors: Record<string, { text: string; bg: string }> = {
@@ -29,6 +33,11 @@ export function Project() {
const [loading, setLoading] = useState(false);
const [selectedProject, setSelectedProject] = useState<ProjectListItem | null>(null);
const [showDetailDialog, setShowDetailDialog] = useState(false);
const [expandedProject, setExpandedProject] = useState<number | null>(null);
const [projectHistory, setProjectHistory] = useState<any[]>([]);
const [loadingHistory, setLoadingHistory] = useState(false);
const [editingHistory, setEditingHistory] = useState<any | null>(null);
const [editRemark, setEditRemark] = useState('');
// 필터 상태
const [categories, setCategories] = useState<string[]>([]);
@@ -37,13 +46,15 @@ export function Project() {
const [selectedProcess, setSelectedProcess] = useState('전체');
const [userFilter, setUserFilter] = useState('');
const [currentUserName, setCurrentUserName] = useState('');
const [userLevel, setUserLevel] = useState<number>(0);
const [userCode, setUserCode] = useState<string>('');
// 상태 필터 체크박스
const [statusChecks, setStatusChecks] = useState({
검토: true,
진행: true,
대기: false,
보류: false,
보류: true,
완료: true,
'완료(보고)': false,
취소: false,
@@ -82,9 +93,12 @@ export function Project() {
try {
const loginStatus = await comms.checkLoginStatus();
if (loginStatus.Success && loginStatus.IsLoggedIn && loginStatus.User) {
const userName = (loginStatus.User as { NameK?: string }).NameK || loginStatus.User.Name || '';
const user = loginStatus.User as { NameK?: string; Level?: number; Code?: string };
const userName = user.NameK || loginStatus.User.Name || '';
setCurrentUserName(userName);
setUserFilter(userName);
setUserLevel(user.Level || 0);
setUserCode(user.Code || '');
}
} catch (error) {
console.error('로그인 정보 로드 오류:', error);
@@ -155,8 +169,11 @@ export function Project() {
const filtered = projects.filter(
(p) =>
p.name?.toLowerCase().includes(key) ||
p.userManager?.toLowerCase().includes(key) ||
p.usermain?.toLowerCase().includes(key) ||
p.name_champion?.toLowerCase().includes(key) ||
p.name_design?.toLowerCase().includes(key) ||
p.name_epanel?.toLowerCase().includes(key) ||
p.name_software?.toLowerCase().includes(key) ||
p.reqstaff?.toLowerCase().includes(key) ||
p.orderno?.toLowerCase().includes(key) ||
p.memo?.toLowerCase().includes(key)
);
@@ -186,6 +203,82 @@ export function Project() {
setStatusChecks((prev) => ({ ...prev, [status]: !prev[status as keyof typeof prev] }));
};
// 히스토리 토글 (편집 아이콘 클릭)
const toggleHistory = async (projectIdx: number) => {
if (expandedProject === projectIdx) {
setExpandedProject(null);
setProjectHistory([]);
setEditingHistory(null);
} else {
setExpandedProject(projectIdx);
setLoadingHistory(true);
try {
const result = await comms.getProjectHistory(projectIdx);
if (result.Success && result.Data) {
setProjectHistory(result.Data as any[]);
} else {
setProjectHistory([]);
}
} catch (error) {
console.error('히스토리 로드 오류:', error);
setProjectHistory([]);
} finally {
setLoadingHistory(false);
}
}
};
// 히스토리 편집 시작
const startEditHistory = (history: any) => {
setEditingHistory(history);
setEditRemark(history.remark || '');
};
// 새 히스토리 추가 시작
const startAddHistory = (projectIdx: number) => {
const today = new Date().toISOString().substring(0, 10);
setEditingHistory({ pidx: projectIdx, pdate: today, progress: 0, remark: '', isNew: true });
setEditRemark('');
};
// 히스토리 저장
const saveHistory = async () => {
if (!editingHistory) return;
try {
const historyData = {
idx: editingHistory.idx || 0,
pidx: editingHistory.pidx,
pdate: editingHistory.pdate,
progress: editingHistory.progress || 0,
remark: editRemark,
};
const result = await comms.saveProjectHistory(historyData);
if (result.Success) {
// 저장 성공 후 히스토리 다시 로드
const historyResult = await comms.getProjectHistory(editingHistory.pidx);
if (historyResult.Success && historyResult.Data) {
setProjectHistory(historyResult.Data as any[]);
}
} else {
alert(result.Message || '저장에 실패했습니다.');
}
setEditingHistory(null);
setEditRemark('');
} catch (error) {
console.error('히스토리 저장 오류:', error);
}
};
// 편집 취소
const cancelEdit = () => {
setEditingHistory(null);
setEditRemark('');
};
// 페이징 계산
const totalPages = Math.ceil(filteredProjects.length / pageSize);
const paginatedProjects = filteredProjects.slice(
@@ -326,7 +419,7 @@ export function Project() {
<tr className="text-white/60 text-left">
<th className="px-3 py-2 w-16"></th>
<th className="px-3 py-2"></th>
<th className="px-3 py-2 w-20"></th>
<th className="px-3 py-2 w-20"></th>
<th className="px-3 py-2 w-28"></th>
<th className="px-3 py-2 w-20 text-center"></th>
<th className="px-3 py-2 w-24"></th>
@@ -351,22 +444,17 @@ export function Project() {
) : (
paginatedProjects.map((project) => {
const statusColor = statusColors[project.status] || { text: 'text-white', bg: 'bg-white/10' };
const isSelected = selectedProject?.idx === project.idx;
const rowBg = project.bHighlight
? 'bg-lime-500/10'
: project.bCost
? 'bg-yellow-500/10'
: project.bmajoritem
? 'bg-pink-500/10'
: '';
const isExpanded = expandedProject === project.idx;
return (
<>
<tr
key={project.idx}
onClick={() => handleSelectProject(project)}
className={`cursor-pointer transition-colors ${rowBg} ${
isSelected ? 'bg-primary-500/20' : 'hover:bg-white/5'
}`}
className={clsx(
'border-b border-white/10 cursor-pointer hover:bg-white/5',
isExpanded && 'bg-primary-900/30'
)}
onClick={() => toggleHistory(project.idx)}
>
<td className="px-3 py-2">
<span className={`px-2 py-0.5 rounded text-xs ${statusColor.bg} ${statusColor.text}`}>
@@ -375,7 +463,19 @@ export function Project() {
</td>
<td className={`px-3 py-2 ${statusColor.text}`}>
<div className="truncate max-w-xs" title={project.name}>
{project.name}
<div className="flex items-center gap-2">
<button
onClick={e => {
e.stopPropagation();
handleSelectProject(project);
}}
className="text-primary-300 hover:text-primary-200 transition-colors"
title="편집"
>
<Edit2 className="w-4 h-4" />
</button>
<span className="font-regular text-white/90">{project.name}</span>
</div>
</div>
</td>
<td className="px-3 py-2 text-white/70">{project.name_champion || project.userManager}</td>
@@ -400,6 +500,7 @@ export function Project() {
<div className="text-white/40">{formatDate(project.edate)}</div>
</td>
<td className="px-3 py-2">
<div className="flex items-center gap-2">
{project.jasmin && project.jasmin > 0 && (
<button
onClick={(e) => {
@@ -412,8 +513,102 @@ export function Project() {
<ExternalLink className="w-4 h-4" />
</button>
)}
{(userLevel >= 9 || userCode === '395552') && (
<button
onClick={(e) => {
e.stopPropagation();
const w = window as any;
if (w.CefSharp) {
w.CefSharp.BindObjectAsync('bridge').then(() => {
w.bridge?.OpenMailHistory();
});
}
}}
className="text-cyan-400 hover:text-cyan-300"
title="메일내역"
>
<Mail className="w-4 h-4" />
</button>
)}
<a
href={`#/partlist?idx=${project.idx}&name=${encodeURIComponent(project.name)}`}
onClick={(e) => e.stopPropagation()}
className="text-amber-400 hover:text-amber-300"
title="파트리스트"
>
<ClipboardList className="w-4 h-4" />
</a>
</div>
</td>
</tr>
{isExpanded && (
<tr key={`history-${project.idx}`}>
<td colSpan={8} className="px-3 py-2 bg-primary-950/50">
<div className="p-4">
<div className="flex items-center justify-between mb-3">
<div className="text-sm font-semibold text-primary-300"> </div>
<button
onClick={() => startAddHistory(project.idx)}
className="text-xs px-3 py-1 bg-primary-500/20 hover:bg-primary-500/30 text-primary-400 rounded transition-colors"
>
+
</button>
</div>
{loadingHistory ? (
<div className="text-white/50 text-sm"> ...</div>
) : editingHistory ? (
<div className="bg-white/10 rounded p-3 space-y-3">
<div className="flex gap-4 text-xs text-white/60">
<span className="text-primary-400 font-semibold">{formatDate(editingHistory.pdate)}</span>
<span>: {editingHistory.progress || 0}%</span>
</div>
<textarea
value={editRemark}
onChange={(e) => setEditRemark(e.target.value)}
className="w-full h-32 px-3 py-2 bg-white/5 border border-white/10 rounded text-white text-sm resize-none"
placeholder="업무 내용을 입력하세요..."
/>
<div className="flex gap-2 justify-end">
<button
onClick={cancelEdit}
className="px-3 py-1 bg-white/5 hover:bg-white/10 text-white/70 rounded text-sm transition-colors"
>
</button>
<button
onClick={saveHistory}
className="px-3 py-1 bg-primary-500/20 hover:bg-primary-500/30 text-primary-400 rounded text-sm transition-colors"
>
</button>
</div>
</div>
) : projectHistory.length > 0 ? (
<div
className="bg-white/5 rounded p-3 border-l-2 border-primary-500 cursor-pointer hover:bg-white/10 transition-colors"
onClick={() => startEditHistory(projectHistory[0])}
>
<div className="flex gap-4 mb-2 text-xs">
<span className="text-primary-400 font-semibold">{formatDate(projectHistory[0].pdate)}</span>
<span className="text-white/60">: {projectHistory[0].progress || 0}%</span>
<span className="text-white/40">{projectHistory[0].wname || ''}</span>
</div>
{projectHistory[0].remark ? (
<div className="text-sm text-white/80 whitespace-pre-wrap">{projectHistory[0].remark}</div>
) : (
<div className="text-sm text-white/40 italic"> . .</div>
)}
</div>
) : (
<div className="text-white/50 text-sm text-center py-4">
. .
</div>
)}
</div>
</td>
</tr>
)}
</>
);
})
)}
@@ -452,6 +647,8 @@ export function Project() {
onClose={handleCloseDialog}
/>
)}
</div>
);
}

View File

@@ -37,6 +37,7 @@ const getStatusClass = (status: string): string => {
const getPriorityText = (seqno: number): string => {
switch (seqno) {
case -1: return '낮음';
case 1: return '중요';
case 2: return '매우 중요';
case 3: return '긴급';
@@ -46,6 +47,7 @@ const getPriorityText = (seqno: number): string => {
const getPriorityClass = (seqno: number): string => {
switch (seqno) {
case -1: return 'bg-white/5 text-white/40';
case 1: return 'bg-primary-500/20 text-primary-300';
case 2: return 'bg-warning-500/20 text-warning-300';
case 3: return 'bg-danger-500/20 text-danger-300';
@@ -561,10 +563,23 @@ function TodoModal({
<Plus className="w-5 h-5 mr-2" />
{title}
</h2>
<div className="flex items-center space-x-2">
{isEdit && onComplete && currentStatus !== '5' && (
<button
type="button"
onClick={onComplete}
disabled={processing}
className="bg-success-500 hover:bg-success-600 text-white px-3 py-1.5 rounded-lg transition-colors flex items-center disabled:opacity-50 text-sm"
>
<CheckCircle className="w-4 h-4 mr-1" />
</button>
)}
<button onClick={onClose} className="text-white/70 hover:text-white transition-colors">
<X className="w-6 h-6" />
</button>
</div>
</div>
{/* 내용 */}
<div className="p-6 space-y-4">
@@ -640,10 +655,11 @@ function TodoModal({
onChange={(e) => setFormData(prev => ({ ...prev, seqno: parseInt(e.target.value) as TodoPriority }))}
className="w-full bg-white/20 backdrop-blur-sm border border-white/30 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-primary-400 transition-all"
>
<option value={0}></option>
<option value={1}></option>
<option value={2}> </option>
<option value={3}></option>
<option value={2}> </option>
<option value={1}></option>
<option value={0}></option>
<option value={-1}></option>
</select>
</div>
<div className="flex items-end">
@@ -661,42 +677,8 @@ function TodoModal({
</div>
{/* 푸터 */}
<div className="px-6 py-4 border-t border-white/10 flex justify-between">
{/* 왼쪽: 삭제 버튼 (편집 모드일 때만) */}
<div>
{isEdit && onDelete && (
<button
type="button"
onClick={onDelete}
disabled={processing}
className="bg-danger-500 hover:bg-danger-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<Trash2 className="w-4 h-4 mr-2" />
</button>
)}
</div>
{/* 오른쪽: 취소, 완료, 수정 버튼 */}
<div className="px-6 py-4 border-t border-white/10 flex justify-end">
<div className="flex space-x-3">
<button
type="button"
onClick={onClose}
className="bg-white/20 hover:bg-white/30 text-white px-4 py-2 rounded-lg transition-colors"
>
</button>
{isEdit && onComplete && currentStatus !== '5' && (
<button
type="button"
onClick={onComplete}
disabled={processing}
className="bg-success-500 hover:bg-success-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<CheckCircle className="w-4 h-4 mr-2" />
</button>
)}
<button
type="button"
onClick={onSubmit}
@@ -710,6 +692,17 @@ function TodoModal({
)}
{submitText}
</button>
{isEdit && onDelete && (
<button
type="button"
onClick={onDelete}
disabled={processing}
className="bg-danger-500 hover:bg-danger-600 text-white px-4 py-2 rounded-lg transition-colors flex items-center disabled:opacity-50"
>
<Trash2 className="w-4 h-4 mr-2" />
</button>
)}
</div>
</div>
</div>

View File

@@ -64,7 +64,7 @@ export interface PurchaseItem {
// 상태 관련 타입
export type TodoStatus = '0' | '1' | '2' | '3' | '5';
export type TodoPriority = 0 | 1 | 2 | 3;
export type TodoPriority = -1 | 0 | 1 | 2 | 3;
// 로그 타입
export interface LogEntry {
@@ -447,6 +447,7 @@ export interface MachineBridgeInterface {
Project_GetProcesses(): Promise<string>;
Project_GetList(statusFilter: string, category: string, process: string, userFilter: string, yearStart: string, yearEnd: string, dateType: string): Promise<string>;
Project_GetHistory(projectIdx: number): Promise<string>;
Project_SaveHistory(idx: number, pidx: number, pdate: string, progress: number, remark: string): Promise<string>;
Project_GetDailyMemo(projectIdx: number): Promise<string>;
// Note API (메모장)
@@ -467,10 +468,26 @@ export interface MachineBridgeInterface {
// Mail API (메일 발신 내역)
Mail_GetList(startDate: string, endDate: string, searchKey: string): Promise<string>;
Mail_AddData(cate: string, subject: string, fromlist: string, tolist: string, cc: string, bcc: string, body: string): Promise<string>;
Mail_SendDirect(cate: string, subject: string, fromlist: string, tolist: string, cc: string, bcc: string, body: string): Promise<string>;
Mail_SendOutlook(subject: string, tolist: string, cc: string, bcc: string, body: string): Promise<string>;
// Customs API (업체정보)
Customs_GetList(searchKey: string): Promise<string>;
Customs_GetDetail(idx: number): Promise<string>;
// License API (라이선스 관리)
License_GetList(): Promise<string>;
License_Add(name: string, version: string, meterialNo: string, supply: string, qty: number, uids: string, serialNo: string, remark: string, sdate: string, edate: string, manu: string, expire: boolean): Promise<string>;
License_Update(idx: number, name: string, version: string, meterialNo: string, supply: string, qty: number, uids: string, serialNo: string, remark: string, sdate: string, edate: string, manu: string, expire: boolean): Promise<string>;
License_Delete(idx: number): Promise<string>;
License_OpenFolder(idx: number): Promise<string>;
License_ExportCSV(filePath: string): Promise<string>;
// PartList API (파트리스트)
PartList_GetList(projectIdx: number): Promise<string>;
PartList_Save(idx: number, projectIdx: number, itemgroup: string, itemname: string, item: string, itemmodel: string, itemscale: string, itemunit: string, qty: number, price: number, itemsupply: string, itemsupplyidx: number, itemmanu: string, itemsid: string, option1: string, remark: string, no: number, qtybuy: number): Promise<string>;
PartList_Delete(idx: number): Promise<string>;
}
// 사용자 권한 정보 타입
@@ -503,6 +520,8 @@ export interface AppVersionInfo {
ProductName: string;
ProductVersion: string;
DisplayVersion: string;
MaxVersion?: string;
HasNewVersion?: boolean;
}
// 사용자 전체 정보 저장용 타입
@@ -895,3 +914,48 @@ export interface CustomItem {
name2: string;
gcode: string;
}
// 라이선스 타입
export interface LicenseItem {
idx?: number;
gcode?: string;
expire?: boolean;
name?: string;
version?: string;
meterialNo?: string;
supply?: string;
qty?: number;
uids?: string;
serialNo?: string;
remark?: string;
sdate?: string;
edate?: string;
manu?: string;
wuid?: string;
wdate?: string;
}
// 파트리스트 타입 (ProjectsPart 테이블)
export interface PartListItem {
idx: number;
Project: number;
itemgroup?: string;
itemname: string;
item: string; // 자재번호
itemmodel?: string;
itemscale?: string;
itemunit?: string;
qty?: number;
price?: number;
amt?: number; // 계산된 금액 (qty * price)
itemsupply?: string;
itemsupplyidx?: number;
itemmanu?: string;
itemsid?: string;
option1?: string;
remark?: string;
no?: number;
qtybuy?: number;
wuid?: string;
wdate?: string;
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CsvHelper" version="30.0.1" targetFramework="net46" />
<package id="EntityFramework" version="6.2.0" targetFramework="net45" />
@@ -9,6 +9,8 @@
<package id="Microsoft.ReportingServices.ReportViewerControl.Winforms" version="150.1586.0" targetFramework="net46" />
<package id="Microsoft.SqlServer.Types" version="14.0.314.76" targetFramework="net46" />
<package id="Microsoft.Web.WebView2" version="1.0.2210.55" targetFramework="net46" />
<package id="NetOfficeFw.Core" version="1.8.1" targetFramework="net46" />
<package id="NetOfficeFw.Outlook" version="1.8.1" targetFramework="net46" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net46" />
<package id="System.Buffers" version="4.5.1" targetFramework="net46" />
<package id="System.Memory" version="4.5.5" targetFramework="net46" />

View File

@@ -12,7 +12,7 @@ namespace Console_SendMail.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@@ -4,7 +4,7 @@
<Settings>
<Setting Name="gwcs" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
@@ -12,7 +12,7 @@
</Setting>
<Setting Name="cs" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True&lt;/ConnectionString&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</Value>

View File

@@ -185,18 +185,6 @@
<Compile Include="Mail\fJRForm.Designer.cs">
<DependentUpon>fJRForm.cs</DependentUpon>
</Compile>
<Compile Include="Mail\fMailList.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Mail\fMailList.Designer.cs">
<DependentUpon>fMailList.cs</DependentUpon>
</Compile>
<Compile Include="Mail\fSendMail.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Mail\fSendMail.Designer.cs">
<DependentUpon>fSendMail.cs</DependentUpon>
</Compile>
<Compile Include="DSInventory.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
@@ -388,12 +376,6 @@
<EmbeddedResource Include="Mail\fJRForm.resx">
<DependentUpon>fJRForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Mail\fMailList.resx">
<DependentUpon>fMailList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Mail\fSendMail.resx">
<DependentUpon>fSendMail.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="fCode.resx">
<DependentUpon>fCode.cs</DependentUpon>
</EmbeddedResource>

View File

@@ -1,525 +0,0 @@
namespace FCM0000.Mail
{
partial class fMailList
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMailList));
this.bn = new System.Windows.Forms.BindingNavigator(this.components);
this.btAdd = new System.Windows.Forms.ToolStripButton();
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.dSMail = new FCM0000.DSMail();
this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
this.btDel = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.btSave = new System.Windows.Forms.ToolStripButton();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
this.tbFind = new System.Windows.Forms.ToolStripTextBox();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.panel1 = new System.Windows.Forms.Panel();
this.button1 = new System.Windows.Forms.Button();
this.btRefresh = new System.Windows.Forms.Button();
this.dtEd = new System.Windows.Forms.DateTimePicker();
this.label2 = new System.Windows.Forms.Label();
this.dtSd = new System.Windows.Forms.DateTimePicker();
this.label1 = new System.Windows.Forms.Label();
this.arDatagridView1 = new arCtl.arDatagridView();
this.tam = new FCM0000.DSMailTableAdapters.TableAdapterManager();
this.pdateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.subjectDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.fromlistDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tolistDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ccDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.wuidDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.wdateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sendOKDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.suid = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.sdate = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.cateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.SendMsg2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dSMail)).BeginInit();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).BeginInit();
this.SuspendLayout();
//
// bn
//
this.bn.AddNewItem = this.btAdd;
this.bn.BindingSource = this.bs;
this.bn.CountItem = this.bindingNavigatorCountItem;
this.bn.DeleteItem = this.btDel;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.ImageScalingSize = new System.Drawing.Size(32, 32);
this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.bindingNavigatorMoveFirstItem,
this.bindingNavigatorMovePreviousItem,
this.bindingNavigatorSeparator,
this.bindingNavigatorPositionItem,
this.bindingNavigatorCountItem,
this.bindingNavigatorSeparator1,
this.bindingNavigatorMoveNextItem,
this.bindingNavigatorMoveLastItem,
this.bindingNavigatorSeparator2,
this.btAdd,
this.btDel,
this.btSave,
this.toolStripButton1,
this.toolStripSeparator1,
this.toolStripLabel1,
this.tbFind,
this.toolStripButton2});
this.bn.Location = new System.Drawing.Point(0, 514);
this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.bindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(855, 39);
this.bn.TabIndex = 0;
this.bn.Text = "bindingNavigator1";
//
// btAdd
//
this.btAdd.Image = ((System.Drawing.Image)(resources.GetObject("btAdd.Image")));
this.btAdd.Name = "btAdd";
this.btAdd.RightToLeftAutoMirrorImage = true;
this.btAdd.Size = new System.Drawing.Size(79, 36);
this.btAdd.Text = "테스트";
this.btAdd.Click += new System.EventHandler(this.btAdd_Click);
//
// bs
//
this.bs.DataMember = "MailData";
this.bs.DataSource = this.dSMail;
this.bs.Sort = "wdate desc,pdate";
//
// dSMail
//
this.dSMail.DataSetName = "DSMail";
this.dSMail.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 36);
this.bindingNavigatorCountItem.Text = "/{0}";
this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수";
//
// btDel
//
this.btDel.Enabled = false;
this.btDel.Image = ((System.Drawing.Image)(resources.GetObject("btDel.Image")));
this.btDel.Name = "btDel";
this.btDel.RightToLeftAutoMirrorImage = true;
this.btDel.Size = new System.Drawing.Size(67, 36);
this.btDel.Text = "삭제";
//
// bindingNavigatorMoveFirstItem
//
this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image")));
this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem";
this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(36, 36);
this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동";
//
// bindingNavigatorMovePreviousItem
//
this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image")));
this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem";
this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(36, 36);
this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동";
//
// bindingNavigatorSeparator
//
this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator";
this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 39);
//
// bindingNavigatorPositionItem
//
this.bindingNavigatorPositionItem.AccessibleName = "위치";
this.bindingNavigatorPositionItem.AutoSize = false;
this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem";
this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23);
this.bindingNavigatorPositionItem.Text = "0";
this.bindingNavigatorPositionItem.ToolTipText = "현재 위치";
//
// bindingNavigatorSeparator1
//
this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1";
this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 39);
//
// bindingNavigatorMoveNextItem
//
this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image")));
this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem";
this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(36, 36);
this.bindingNavigatorMoveNextItem.Text = "다음으로 이동";
//
// bindingNavigatorMoveLastItem
//
this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image")));
this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem";
this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(36, 36);
this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동";
//
// bindingNavigatorSeparator2
//
this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2";
this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 39);
//
// btSave
//
this.btSave.Enabled = false;
this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image")));
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(67, 36);
this.btSave.Text = "저장";
this.btSave.Click += new System.EventHandler(this.mailDataBindingNavigatorSaveItem_Click);
//
// toolStripButton1
//
this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(119, 36);
this.toolStripButton1.Text = "목록 내보내기";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 39);
//
// toolStripLabel1
//
this.toolStripLabel1.Name = "toolStripLabel1";
this.toolStripLabel1.Size = new System.Drawing.Size(31, 36);
this.toolStripLabel1.Text = "검색";
//
// tbFind
//
this.tbFind.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.tbFind.Name = "tbFind";
this.tbFind.Size = new System.Drawing.Size(120, 39);
this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbFind_KeyDown_1);
//
// toolStripButton2
//
this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(36, 36);
this.toolStripButton2.Text = "toolStripButton2";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// panel1
//
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.btRefresh);
this.panel1.Controls.Add(this.dtEd);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.dtSd);
this.panel1.Controls.Add(this.label1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(855, 36);
this.panel1.TabIndex = 3;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button1.Location = new System.Drawing.Point(785, 7);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(64, 21);
this.button1.TabIndex = 5;
this.button1.Text = "닫기";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// btRefresh
//
this.btRefresh.Location = new System.Drawing.Point(482, 9);
this.btRefresh.Name = "btRefresh";
this.btRefresh.Size = new System.Drawing.Size(64, 21);
this.btRefresh.TabIndex = 4;
this.btRefresh.Text = "조회";
this.btRefresh.UseVisualStyleBackColor = true;
this.btRefresh.Click += new System.EventHandler(this.btRefresh_Click);
//
// dtEd
//
this.dtEd.Location = new System.Drawing.Point(273, 9);
this.dtEd.Name = "dtEd";
this.dtEd.Size = new System.Drawing.Size(200, 21);
this.dtEd.TabIndex = 3;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(253, 13);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(14, 12);
this.label2.TabIndex = 2;
this.label2.Text = "~";
//
// dtSd
//
this.dtSd.Location = new System.Drawing.Point(45, 7);
this.dtSd.Name = "dtSd";
this.dtSd.Size = new System.Drawing.Size(200, 21);
this.dtSd.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 0;
this.label1.Text = "기간";
//
// arDatagridView1
//
this.arDatagridView1.A_DelCurrentCell = true;
this.arDatagridView1.A_EnterToTab = true;
this.arDatagridView1.A_KoreanField = null;
this.arDatagridView1.A_UpperField = null;
this.arDatagridView1.A_ViewRownumOnHeader = true;
this.arDatagridView1.AllowUserToAddRows = false;
this.arDatagridView1.AllowUserToDeleteRows = false;
this.arDatagridView1.AutoGenerateColumns = false;
this.arDatagridView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.arDatagridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.arDatagridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.pdateDataGridViewTextBoxColumn,
this.subjectDataGridViewTextBoxColumn,
this.fromlistDataGridViewTextBoxColumn,
this.tolistDataGridViewTextBoxColumn,
this.ccDataGridViewTextBoxColumn,
this.wuidDataGridViewTextBoxColumn,
this.wdateDataGridViewTextBoxColumn,
this.sendOKDataGridViewCheckBoxColumn,
this.suid,
this.sdate,
this.cateDataGridViewTextBoxColumn,
this.SendMsg2});
this.arDatagridView1.DataSource = this.bs;
this.arDatagridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.arDatagridView1.Location = new System.Drawing.Point(0, 36);
this.arDatagridView1.Name = "arDatagridView1";
this.arDatagridView1.ReadOnly = true;
this.arDatagridView1.RowTemplate.Height = 23;
this.arDatagridView1.Size = new System.Drawing.Size(855, 478);
this.arDatagridView1.TabIndex = 4;
//
// tam
//
this.tam.BackupDataSetBeforeUpdate = false;
this.tam.Connection = null;
this.tam.MailAutoTableAdapter = null;
this.tam.MailDataTableAdapter = null;
this.tam.MailFormTableAdapter = null;
this.tam.UpdateOrder = FCM0000.DSMailTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;
//
// pdateDataGridViewTextBoxColumn
//
this.pdateDataGridViewTextBoxColumn.DataPropertyName = "pdate";
this.pdateDataGridViewTextBoxColumn.HeaderText = "등록일";
this.pdateDataGridViewTextBoxColumn.Name = "pdateDataGridViewTextBoxColumn";
this.pdateDataGridViewTextBoxColumn.ReadOnly = true;
//
// subjectDataGridViewTextBoxColumn
//
this.subjectDataGridViewTextBoxColumn.DataPropertyName = "subject";
this.subjectDataGridViewTextBoxColumn.HeaderText = "제목";
this.subjectDataGridViewTextBoxColumn.Name = "subjectDataGridViewTextBoxColumn";
this.subjectDataGridViewTextBoxColumn.ReadOnly = true;
//
// fromlistDataGridViewTextBoxColumn
//
this.fromlistDataGridViewTextBoxColumn.DataPropertyName = "fromlist";
this.fromlistDataGridViewTextBoxColumn.HeaderText = "From";
this.fromlistDataGridViewTextBoxColumn.Name = "fromlistDataGridViewTextBoxColumn";
this.fromlistDataGridViewTextBoxColumn.ReadOnly = true;
//
// tolistDataGridViewTextBoxColumn
//
this.tolistDataGridViewTextBoxColumn.DataPropertyName = "tolist";
this.tolistDataGridViewTextBoxColumn.HeaderText = "To";
this.tolistDataGridViewTextBoxColumn.Name = "tolistDataGridViewTextBoxColumn";
this.tolistDataGridViewTextBoxColumn.ReadOnly = true;
//
// ccDataGridViewTextBoxColumn
//
this.ccDataGridViewTextBoxColumn.DataPropertyName = "cc";
this.ccDataGridViewTextBoxColumn.HeaderText = "CC";
this.ccDataGridViewTextBoxColumn.Name = "ccDataGridViewTextBoxColumn";
this.ccDataGridViewTextBoxColumn.ReadOnly = true;
//
// wuidDataGridViewTextBoxColumn
//
this.wuidDataGridViewTextBoxColumn.DataPropertyName = "wuid";
this.wuidDataGridViewTextBoxColumn.HeaderText = "작성자";
this.wuidDataGridViewTextBoxColumn.Name = "wuidDataGridViewTextBoxColumn";
this.wuidDataGridViewTextBoxColumn.ReadOnly = true;
//
// wdateDataGridViewTextBoxColumn
//
this.wdateDataGridViewTextBoxColumn.DataPropertyName = "wdate";
this.wdateDataGridViewTextBoxColumn.HeaderText = "작성일";
this.wdateDataGridViewTextBoxColumn.Name = "wdateDataGridViewTextBoxColumn";
this.wdateDataGridViewTextBoxColumn.ReadOnly = true;
//
// sendOKDataGridViewCheckBoxColumn
//
this.sendOKDataGridViewCheckBoxColumn.DataPropertyName = "SendOK2";
this.sendOKDataGridViewCheckBoxColumn.HeaderText = "전송";
this.sendOKDataGridViewCheckBoxColumn.Name = "sendOKDataGridViewCheckBoxColumn";
this.sendOKDataGridViewCheckBoxColumn.ReadOnly = true;
//
// suid
//
this.suid.DataPropertyName = "suid2";
this.suid.HeaderText = "전송자";
this.suid.Name = "suid";
this.suid.ReadOnly = true;
//
// sdate
//
this.sdate.DataPropertyName = "sdate2";
this.sdate.HeaderText = "전송시간";
this.sdate.Name = "sdate";
this.sdate.ReadOnly = true;
//
// cateDataGridViewTextBoxColumn
//
this.cateDataGridViewTextBoxColumn.DataPropertyName = "cate";
this.cateDataGridViewTextBoxColumn.HeaderText = "분류";
this.cateDataGridViewTextBoxColumn.Name = "cateDataGridViewTextBoxColumn";
this.cateDataGridViewTextBoxColumn.ReadOnly = true;
//
// SendMsg2
//
this.SendMsg2.DataPropertyName = "SendMsg2";
this.SendMsg2.HeaderText = "Message";
this.SendMsg2.Name = "SendMsg2";
this.SendMsg2.ReadOnly = true;
//
// fMailList
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(855, 553);
this.Controls.Add(this.arDatagridView1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.bn);
this.Name = "fMailList";
this.Text = "메일 발신 내역";
this.Load += new System.EventHandler(this.@__Load);
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dSMail)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private DSMail dSMail;
private System.Windows.Forms.BindingSource bs;
private DSMailTableAdapters.TableAdapterManager tam;
private System.Windows.Forms.BindingNavigator bn;
private System.Windows.Forms.ToolStripButton btAdd;
private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
private System.Windows.Forms.ToolStripButton btDel;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
private System.Windows.Forms.ToolStripButton btSave;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.DateTimePicker dtEd;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.DateTimePicker dtSd;
private System.Windows.Forms.Button btRefresh;
private System.Windows.Forms.Button button1;
private arCtl.arDatagridView arDatagridView1;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripLabel toolStripLabel1;
private System.Windows.Forms.ToolStripTextBox tbFind;
private System.Windows.Forms.ToolStripButton toolStripButton2;
private System.Windows.Forms.DataGridViewTextBoxColumn pdateDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn subjectDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn fromlistDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn tolistDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn ccDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn wuidDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn wdateDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewCheckBoxColumn sendOKDataGridViewCheckBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn suid;
private System.Windows.Forms.DataGridViewTextBoxColumn sdate;
private System.Windows.Forms.DataGridViewTextBoxColumn cateDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn SendMsg2;
}
}

View File

@@ -1,147 +0,0 @@
using FCOMMON;
using NetOffice.OutlookApi;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FCM0000.Mail
{
public partial class fMailList : fBase
{
string fn_fpcolsize = "";
public fMailList()
{
InitializeComponent();
Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
this.FormClosed += fAutoSendSetting_FormClosed;
fn_fpcolsize = System.IO.Path.Combine(FCOMMON.Util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
}
void fAutoSendSetting_FormClosed(object sender, FormClosedEventArgs e)
{
//FCOMMON.Util.FPColsizeSave(this.fpSpread1, fn_fpcolsize);
}
private void mailDataBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
this.tam.UpdateAll(this.dSMail);
}
private void __Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
this.dtEd.Value = DateTime.Now;
this.dtSd.Value = DateTime.Now.AddDays(-10);
refreshData();
}
private void fillToolStripButton_Click(object sender, EventArgs e)
{
}
void refreshData()
{
try
{
var ta = new DSMailTableAdapters.MailDataTableAdapter();
ta.Fill(this.dSMail.MailData, FCOMMON.info.Login.gcode, dtSd.Value.ToShortDateString(), dtEd.Value.ToShortDateString(), "%");
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
this.arDatagridView1.AutoResizeColumns();
// FCOMMON.Util.FPColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
private void btRefresh_Click(object sender, EventArgs e)
{
refreshData();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void btFind_Click(object sender, EventArgs e)
{
}
void find()
{
var txt = tbFind.Text.Trim();
if (txt.isEmpty())
{
bs.Filter = "";
tbFind.BackColor = Color.White;
}
else
{
var cols = new string[] { "subject", "fromlist", "tolist", "cate" };
var where = string.Join(" like @ or ", cols) + " like @";
where = where.Replace("@", $"'%{txt.Replace("'", "''")}%'");
try
{
bs.Filter = where;
tbFind.BackColor = Color.Lime;
}
catch
{
bs.Filter = "";
tbFind.BackColor = Color.HotPink;
}
}
tbFind.SelectAll();
tbFind.Focus();
}
private void tbFind_KeyDown(object sender, KeyEventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
var fn = "export_mail_data.csv";
using (var sd = new SaveFileDialog() { FileName = fn, RestoreDirectory = true })
{
if (sd.ShowDialog() != DialogResult.OK) return;
arDatagridView1.ExportData(sd.FileName);
var dlg = Util.MsgQ("생성된 파일을 확인 할까요?");
if (dlg == DialogResult.Yes) Util.RunExplorer(sd.FileName);
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
find();
}
private void tbFind_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) find();
}
private void btAdd_Click(object sender, EventArgs e)
{
using (var f = new fSendMail())
f.ShowDialog();
}
}
}

View File

@@ -1,250 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>245, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
</value>
</data>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>179, 17</value>
</metadata>
<metadata name="dSMail.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>90, 17</value>
</metadata>
<data name="btDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG
QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX
bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIESURBVFhH7ZXLK0RxFMfnD7GQlY2dmMkMTVnIu6QsyCsb
pZTyTLaKGY0xxivlubCY8SwWFEqR8S6xkdyRVyhGKI75HXdu5vqpyT0/G/c7fere0+/c87m3+7tj0CMq
pnZTbKItqY6EjpRo+bJ0MdnM+Ua7GbRi6bRCYrv5NN5ujpEvTRMqQe/BFKT3ZNFLUgluSJvg8/voJSkF
LwKX9JLUguSSIgRJJUUJkkmKFPwqaWxLOklwpETJYyMPlWDv2gB49rxcOpYdYLJbgM2Sx0YeKsFI0AW1
ogtq5f8KNs+1gGvVjaS5M5R6tadGqecPFoT18BAm2DjbDKEMrQ9jzepMhdvALdb89+dgcVi/9akRJsjY
lnZQ5un1CZ+ic8WF5yzsBng9aoQKFo+Wwdv7GwqNbo7D9eMNHu+f7+O/BK9HjVBBxvzhAkqF8h78lY1X
cNfyEC6Y05+nPEWWxaMl7rqfEC7YMNMkq31GuvdHtDlCCBVkItKdhGKh94/FueziruchVLBrpVtWAqid
qgff2RYeB14CkNGbze1RI0wwzZ0JD8+PKHR8dYy7tnKiCs9ZPLtebp8aYYLe3UlZBaBuulGpb51tY41t
nMLh4rAeHsIEi0ZKoWSsHPn6zUvvyVbqmX25YT08hAlSoQtqRRfUii6olV8JGm3JccHm1j8hOEseq4c4
BsMH9in5LvAGb8kAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL1SURBVEhLtVZbTxNBFCZeYrxEjY8++KKiMfHFRAgvCv4H
o/4Bn9RoDBETzcQgRmjLtrbQVuwFygKloZZud5dLJYZCdxce5NpCQMrFpLyYlKeSCFl7mmlizEB3YPsl
XyY7e+b7MufMnN0yPfDC5D/52ui8/q6lpwZGeMav9Mf93t6jjE947hVkMTCeXI/OpLfHUlsqjPDsys0z
nZFnCKEjeMnh0dQerPIOKJKS2tqZ/q2qe1FJZXbcvBT/0B6uwksPDsYnPgpP/lwnGe3FoLSwZmaFh1iC
HgZ3+HZIWVwliRdjcGL5VxN7gJ1DTSG9JFGthLRT1xwOUrGaFqO8ktmBA4cltcHDSwMkMVp6eVnEksXx
0tBxOhhLbJCEaAlXTfM9r238cu3b7OY2SYiW4kw6W9vovoql9wdq7bo3lsoQhWgZW8moyNpdjaX3R53x
c/nAzGaWJERLcSqdrTO1XcHS+wMh5ymoDUmIln3x5BpVL4feSxKipUeUeSypDXD/oPeSxLRSTmX+mDv4
J1hSG6DjuMTDdS6PII1Td67cgmNGT/9wv7xIFC3G0MTyBnWvfmqxnGjuCHFcfFb1RyfV8MQSUXwvwteJ
6eYfYDltgBNt8H4VOWlWFZSEysXn1CZPKObi4hL0XpJRgVBTSK/BFarEctqAGM/53E5jEWkubwqj0R0a
hAxAreDAuUVZgCsiTqez8AcCY1BKrkJPhoNEX1NT2wUry49G5Pm8KS/Nq80+boh0B2EOmgyyd1fDeOB/
LmTtumjt4hWhYKrMq2Y2MopstjM4RH/UW7yXbX5+is8ZgimYmzvDk5ABHKI/Guy+G3b/4FzeML/ThGpj
+SnIAA7RH+8dPbccgWiiYAq0B8QfyNx+CYfoj3pH5x1H3/DSf6aJ3OerHIfoj1cfnedaA9HFf03bgtHk
G6v/Jg4pDd4yrsrAiLxbMHXldo4+sRX4denw2Ok8zvi4770j0q6zb2ihoYW9i1+VHmCOTN4KZPGdxVMl
RlnZX9i+Wt0gvITgAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="dSMail.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>90, 17</value>
</metadata>
<metadata name="suid.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="sdate.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SendMsg2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tam.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -1,295 +0,0 @@
namespace FCM0000
{
partial class fSendMail
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.Label tolistLabel;
System.Windows.Forms.Label bccLabel;
System.Windows.Forms.Label ccLabel;
System.Windows.Forms.Label subjectLabel;
System.Windows.Forms.Label bodyLabel;
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSendMail));
this.bn = new System.Windows.Forms.BindingNavigator(this.components);
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.dsMSSQL = new FCM0000.DSMail();
this.btSend = new System.Windows.Forms.ToolStripButton();
this.btOUtlook = new System.Windows.Forms.ToolStripButton();
this.panel1 = new System.Windows.Forms.Panel();
this.tbBody = new YARTE.UI.HtmlEditor();
this.tbTo = new System.Windows.Forms.TextBox();
this.tbBCC = new System.Windows.Forms.TextBox();
this.tbCC = new System.Windows.Forms.TextBox();
this.tbSubject = new System.Windows.Forms.TextBox();
this.tam = new FCM0000.DSMailTableAdapters.TableAdapterManager();
this.ta = new FCM0000.DSMailTableAdapters.MailDataTableAdapter();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
tolistLabel = new System.Windows.Forms.Label();
bccLabel = new System.Windows.Forms.Label();
ccLabel = new System.Windows.Forms.Label();
subjectLabel = new System.Windows.Forms.Label();
bodyLabel = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// tolistLabel
//
tolistLabel.AutoSize = true;
tolistLabel.Location = new System.Drawing.Point(30, 15);
tolistLabel.Name = "tolistLabel";
tolistLabel.Size = new System.Drawing.Size(35, 12);
tolistLabel.TabIndex = 0;
tolistLabel.Text = "tolist:";
//
// bccLabel
//
bccLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
bccLabel.AutoSize = true;
bccLabel.Location = new System.Drawing.Point(35, 467);
bccLabel.Name = "bccLabel";
bccLabel.Size = new System.Drawing.Size(30, 12);
bccLabel.TabIndex = 8;
bccLabel.Text = "bcc:";
//
// ccLabel
//
ccLabel.AutoSize = true;
ccLabel.Location = new System.Drawing.Point(42, 43);
ccLabel.Name = "ccLabel";
ccLabel.Size = new System.Drawing.Size(23, 12);
ccLabel.TabIndex = 2;
ccLabel.Text = "cc:";
//
// subjectLabel
//
subjectLabel.AutoSize = true;
subjectLabel.Location = new System.Drawing.Point(15, 71);
subjectLabel.Name = "subjectLabel";
subjectLabel.Size = new System.Drawing.Size(50, 12);
subjectLabel.TabIndex = 4;
subjectLabel.Text = "subject:";
//
// bodyLabel
//
bodyLabel.AutoSize = true;
bodyLabel.Location = new System.Drawing.Point(28, 97);
bodyLabel.Name = "bodyLabel";
bodyLabel.Size = new System.Drawing.Size(37, 12);
bodyLabel.TabIndex = 6;
bodyLabel.Text = "body:";
//
// bn
//
this.bn.AddNewItem = null;
this.bn.BindingSource = this.bs;
this.bn.CountItem = null;
this.bn.DeleteItem = null;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.btSend,
this.btOUtlook,
this.toolStripButton1});
this.bn.Location = new System.Drawing.Point(0, 498);
this.bn.MoveFirstItem = null;
this.bn.MoveLastItem = null;
this.bn.MoveNextItem = null;
this.bn.MovePreviousItem = null;
this.bn.Name = "bn";
this.bn.PositionItem = null;
this.bn.Size = new System.Drawing.Size(579, 25);
this.bn.TabIndex = 0;
this.bn.Text = "bindingNavigator1";
//
// bs
//
this.bs.DataMember = "MailData";
this.bs.DataSource = this.dsMSSQL;
//
// dsMSSQL
//
this.dsMSSQL.DataSetName = "dsMSSQL";
this.dsMSSQL.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// btSend
//
this.btSend.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.btSend.Image = ((System.Drawing.Image)(resources.GetObject("btSend.Image")));
this.btSend.Name = "btSend";
this.btSend.Size = new System.Drawing.Size(69, 22);
this.btSend.Text = "Send(&S)";
this.btSend.Click += new System.EventHandler(this.mailFormBindingNavigatorSaveItem_Click);
//
// btOUtlook
//
this.btOUtlook.Image = global::FCM0000.Properties.Resources.action_refresh;
this.btOUtlook.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btOUtlook.Name = "btOUtlook";
this.btOUtlook.Size = new System.Drawing.Size(90, 22);
this.btOUtlook.Text = "To OutLook";
this.btOUtlook.Click += new System.EventHandler(this.toolStripButton1_Click_1);
//
// panel1
//
this.panel1.Controls.Add(this.tbBody);
this.panel1.Controls.Add(tolistLabel);
this.panel1.Controls.Add(this.tbTo);
this.panel1.Controls.Add(bccLabel);
this.panel1.Controls.Add(this.tbBCC);
this.panel1.Controls.Add(ccLabel);
this.panel1.Controls.Add(this.tbCC);
this.panel1.Controls.Add(subjectLabel);
this.panel1.Controls.Add(this.tbSubject);
this.panel1.Controls.Add(bodyLabel);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(579, 498);
this.panel1.TabIndex = 1;
//
// tbBody
//
this.tbBody.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbBody.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbBody.Html = "";
this.tbBody.Location = new System.Drawing.Point(74, 97);
this.tbBody.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tbBody.Name = "tbBody";
this.tbBody.ReadOnly = false;
this.tbBody.ShowToolbar = true;
this.tbBody.Size = new System.Drawing.Size(493, 361);
this.tbBody.TabIndex = 7;
//
// tbTo
//
this.tbTo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbTo.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "tolist", true));
this.tbTo.Location = new System.Drawing.Point(74, 12);
this.tbTo.Name = "tbTo";
this.tbTo.Size = new System.Drawing.Size(493, 21);
this.tbTo.TabIndex = 1;
//
// tbBCC
//
this.tbBCC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbBCC.BackColor = System.Drawing.Color.SkyBlue;
this.tbBCC.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "bcc", true));
this.tbBCC.Location = new System.Drawing.Point(74, 464);
this.tbBCC.Name = "tbBCC";
this.tbBCC.Size = new System.Drawing.Size(493, 21);
this.tbBCC.TabIndex = 9;
//
// tbCC
//
this.tbCC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbCC.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "cc", true));
this.tbCC.Location = new System.Drawing.Point(74, 40);
this.tbCC.Name = "tbCC";
this.tbCC.Size = new System.Drawing.Size(493, 21);
this.tbCC.TabIndex = 3;
//
// tbSubject
//
this.tbSubject.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbSubject.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "subject", true));
this.tbSubject.Location = new System.Drawing.Point(74, 68);
this.tbSubject.Name = "tbSubject";
this.tbSubject.Size = new System.Drawing.Size(493, 21);
this.tbSubject.TabIndex = 5;
//
// tam
//
this.tam.BackupDataSetBeforeUpdate = false;
this.tam.MailAutoTableAdapter = null;
this.tam.MailDataTableAdapter = this.ta;
this.tam.MailFormTableAdapter = null;
this.tam.UpdateOrder = FCM0000.DSMailTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;
//
// ta
//
this.ta.ClearBeforeFill = true;
//
// toolStripButton1
//
this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(90, 22);
this.toolStripButton1.Text = "Direct Send";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// fSendMail
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(579, 523);
this.Controls.Add(this.panel1);
this.Controls.Add(this.bn);
this.Name = "fSendMail";
this.Text = "Send Mail";
this.Load += new System.EventHandler(this.fMailform_Load);
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dsMSSQL)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private DSMail dsMSSQL;
private System.Windows.Forms.BindingSource bs;
private DSMailTableAdapters.TableAdapterManager tam;
private System.Windows.Forms.BindingNavigator bn;
private System.Windows.Forms.ToolStripButton btSend;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TextBox tbTo;
private System.Windows.Forms.TextBox tbBCC;
private System.Windows.Forms.TextBox tbCC;
private System.Windows.Forms.TextBox tbSubject;
private YARTE.UI.HtmlEditor tbBody;
private DSMailTableAdapters.MailDataTableAdapter ta;
private System.Windows.Forms.ToolStripButton btOUtlook;
private System.Windows.Forms.ToolStripButton toolStripButton1;
}
}

View File

@@ -1,145 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using YARTE.UI.Buttons;
using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Tab;
namespace FCM0000
{
public partial class fSendMail : FCOMMON.fBase
{
public fSendMail()
{
InitializeComponent();
Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
PredefinedButtonSets.SetupDefaultButtons(this.tbBody);
this.dsMSSQL.MailData.TableNewRow += MailForm_TableNewRow;
}
void MailForm_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["gcode"] = FCOMMON.info.Login.gcode;
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["cate"] = "NR";
e.Row["pdate"] = DateTime.Now.ToShortDateString();
e.Row["fromlist"] = "gw@amkor.co.kr";
}
private void fMailform_Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
this.bs.AddNew(); //신규메일데이터생성
LoadNRData();
}
void LoadNRData()
{
//자로에서 불러와서 그 값을 가져온다.
var taMF = new DSMailTableAdapters.MailFormTableAdapter();
var data = taMF.GetByCate(FCOMMON.info.Login.gcode, "NR");
if (data != null && data.Rows.Count > 0)
{
var drForm = data.Rows[0] as DSMail.MailFormRow;
this.tbSubject.Text = drForm.subject;
this.tbBody.Html = drForm.body;
this.tbTo.Text = drForm.tolist;
//this.tbBCC.Text = drForm.bcc;
//this.tbCC.Text = drForm.cc;
}
}
private void mailFormBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
var drv = this.bs.Current as DataRowView;
drv["subject"] = this.tbSubject.Text;
drv["body"] = this.tbBody.Html;
drv.EndEdit();
this.bs.EndEdit();
var cnt = this.tam.UpdateAll(this.dsMSSQL);
MessageBox.Show($"{cnt}");
this.bs.AddNew();
tbTo.Text = FCOMMON.info.Login.email;
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSMail.MailFormRow;
var tolist = new string[] { "Chikyun.kim@amkor.co.kr" }; //dr.tolist.Split(',');
Outlook.Application outlookApplication = new Outlook.Application();
foreach (var to in tolist)
{
if (to.isEmpty()) continue;
var newMail = outlookApplication.CreateItem(OlItemType.olMailItem) as Outlook.MailItem;
newMail.Display();
newMail.Subject = this.tbSubject.Text.Trim(); // dr.title;
newMail.To = to;
newMail.CC = tbCC.Text.Trim();
newMail.BCC = tbBCC.Text.Trim();
// newMail.BodyFormat = OlBodyFormat.olFormatHTML;
newMail.HTMLBody = this.tbBody.Html
.Replace("{USER}", FCOMMON.info.Login.nameK)
.Replace("{EUSER}", FCOMMON.info.Login.nameE)
.Replace("{EMAIL}", FCOMMON.info.Login.email)
.Replace("%7BEMAIL%7D", FCOMMON.info.Login.email)
.Replace("{HP}", FCOMMON.info.Login.hp)
.Replace("{TEL}", FCOMMON.info.Login.tel)
.Replace("{ITEM}", tbSubject.Text) + newMail.HTMLBody;
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
//direct send
var list_from = "gw@amkor.co.kr";
var list_to = tbTo.Text;
var subject = tbSubject.Text;
var body = tbBody.Html;
var list_bcc = tbBCC.Text;
var list_cc = tbCC.Text;
//전송을 해야 함
var mc = new System.Net.Mail.SmtpClient(FCOMMON.info.mailserver);
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;
try
{
mc.Send(msg);
MessageBox.Show("ok");
}
catch (Exception eX)
{
MessageBox.Show(eX.Message);
}
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -7,154 +7,6 @@
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="gwcs" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="gwcs (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.FED0000.Properties.Settings.GlobalReference.Default.gwcs" Provider="System.Data.SqlClient" />
</Connections>
<Tables>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="EETGW_EducationListTableAdapter" GeneratorDataComponentClassName="EETGW_EducationListTableAdapter" Name="EETGW_EducationList" UserDataComponentName="EETGW_EducationListTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_EducationList" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" 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">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [EETGW_EducationList] WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_sdate = 1 AND [sdate] IS NULL) OR ([sdate] = @Original_sdate)) AND ((@IsNull_edate = 1 AND [edate] IS NULL) OR ([edate] = @Original_edate)) AND ((@IsNull_title = 1 AND [title] IS NULL) OR ([title] = @Original_title)) AND ((@IsNull_edutype = 1 AND [edutype] IS NULL) OR ([edutype] = @Original_edutype)) AND ((@IsNull_proposal = 1 AND [proposal] IS NULL) OR ([proposal] = @Original_proposal)) AND ((@IsNull_target = 1 AND [target] IS NULL) OR ([target] = @Original_target)) AND ((@IsNull_eduoffice = 1 AND [eduoffice] IS NULL) OR ([eduoffice] = @Original_eduoffice)) AND ((@IsNull_meettype = 1 AND [meettype] IS NULL) OR ([meettype] = @Original_meettype)) AND ((@IsNull_location = 1 AND [location] IS NULL) OR ([location] = @Original_location)) AND ((@IsNull_price = 1 AND [price] IS NULL) OR ([price] = @Original_price)) AND ((@IsNull_qty = 1 AND [qty] IS NULL) OR ([qty] = @Original_qty)) AND ((@IsNull_amt = 1 AND [amt] IS NULL) OR ([amt] = @Original_amt)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_sdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_title" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edutype" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edutype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_proposal" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_proposal" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_target" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_target" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_eduoffice" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_eduoffice" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_meettype" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_meettype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_location" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_location" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_price" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@Original_price" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_qty" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int16" Direction="Input" ParameterName="@Original_qty" Precision="0" ProviderType="SmallInt" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_amt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@Original_amt" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [EETGW_EducationList] ([gcode], [sdate], [edate], [title], [edutype], [proposal], [target], [eduoffice], [meettype], [location], [price], [qty], [amt], [wuid], [wdate]) VALUES (@gcode, @sdate, @edate, @title, @edutype, @proposal, @target, @eduoffice, @meettype, @location, @price, @qty, @amt, @wuid, @wdate);
SELECT idx, gcode, sdate, edate, title, edutype, proposal, target, eduoffice, meettype, location, price, qty, amt, wuid, wdate FROM EETGW_EducationList WHERE (idx = SCOPE_IDENTITY()) ORDER BY sdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@sdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edutype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@proposal" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@target" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@eduoffice" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@meettype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@location" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@price" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int16" Direction="Input" ParameterName="@qty" Precision="0" ProviderType="SmallInt" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@amt" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT idx, gcode, sdate, edate, title, edutype, proposal, target, eduoffice, meettype, location, price, qty, amt, wuid, wdate
FROM EETGW_EducationList WITH (nolock)
WHERE (gcode = @gcode) AND (sdate BETWEEN @sd AND @ed)
ORDER BY sdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.EETGW_EducationList" 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="sd" ColumnName="sdate" DataSourceName="EE.dbo.EETGW_EducationList" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@sd" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="ed" ColumnName="sdate" DataSourceName="EE.dbo.EETGW_EducationList" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@ed" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [EETGW_EducationList] SET [gcode] = @gcode, [sdate] = @sdate, [edate] = @edate, [title] = @title, [edutype] = @edutype, [proposal] = @proposal, [target] = @target, [eduoffice] = @eduoffice, [meettype] = @meettype, [location] = @location, [price] = @price, [qty] = @qty, [amt] = @amt, [wuid] = @wuid, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_sdate = 1 AND [sdate] IS NULL) OR ([sdate] = @Original_sdate)) AND ((@IsNull_edate = 1 AND [edate] IS NULL) OR ([edate] = @Original_edate)) AND ((@IsNull_title = 1 AND [title] IS NULL) OR ([title] = @Original_title)) AND ((@IsNull_edutype = 1 AND [edutype] IS NULL) OR ([edutype] = @Original_edutype)) AND ((@IsNull_proposal = 1 AND [proposal] IS NULL) OR ([proposal] = @Original_proposal)) AND ((@IsNull_target = 1 AND [target] IS NULL) OR ([target] = @Original_target)) AND ((@IsNull_eduoffice = 1 AND [eduoffice] IS NULL) OR ([eduoffice] = @Original_eduoffice)) AND ((@IsNull_meettype = 1 AND [meettype] IS NULL) OR ([meettype] = @Original_meettype)) AND ((@IsNull_location = 1 AND [location] IS NULL) OR ([location] = @Original_location)) AND ((@IsNull_price = 1 AND [price] IS NULL) OR ([price] = @Original_price)) AND ((@IsNull_qty = 1 AND [qty] IS NULL) OR ([qty] = @Original_qty)) AND ((@IsNull_amt = 1 AND [amt] IS NULL) OR ([amt] = @Original_amt)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate));
SELECT idx, gcode, sdate, edate, title, edutype, proposal, target, eduoffice, meettype, location, price, qty, amt, wuid, wdate FROM EETGW_EducationList WHERE (idx = @idx) ORDER BY sdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@sdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edutype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@proposal" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@target" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@eduoffice" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@meettype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@location" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@price" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int16" Direction="Input" ParameterName="@qty" Precision="0" ProviderType="SmallInt" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@amt" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_sdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_title" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edutype" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edutype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edutype" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_proposal" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_proposal" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="proposal" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_target" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_target" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="target" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_eduoffice" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_eduoffice" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eduoffice" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_meettype" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_meettype" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="meettype" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_location" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_location" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="location" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_price" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@Original_price" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="price" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_qty" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int16" Direction="Input" ParameterName="@Original_qty" Precision="0" ProviderType="SmallInt" Scale="0" Size="0" SourceColumn="qty" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_amt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Decimal" Direction="Input" ParameterName="@Original_amt" Precision="18" ProviderType="Decimal" Scale="0" Size="0" SourceColumn="amt" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="idx" DataSetColumn="idx" />
<Mapping SourceColumn="gcode" DataSetColumn="gcode" />
<Mapping SourceColumn="sdate" DataSetColumn="sdate" />
<Mapping SourceColumn="edate" DataSetColumn="edate" />
<Mapping SourceColumn="title" DataSetColumn="title" />
<Mapping SourceColumn="edutype" DataSetColumn="edutype" />
<Mapping SourceColumn="proposal" DataSetColumn="proposal" />
<Mapping SourceColumn="target" DataSetColumn="target" />
<Mapping SourceColumn="eduoffice" DataSetColumn="eduoffice" />
<Mapping SourceColumn="meettype" DataSetColumn="meettype" />
<Mapping SourceColumn="location" DataSetColumn="location" />
<Mapping SourceColumn="price" DataSetColumn="price" />
<Mapping SourceColumn="qty" DataSetColumn="qty" />
<Mapping SourceColumn="amt" DataSetColumn="amt" />
<Mapping SourceColumn="wuid" DataSetColumn="wuid" />
<Mapping SourceColumn="wdate" DataSetColumn="wdate" />
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="EETGW_LicenseTableAdapter" GeneratorDataComponentClassName="EETGW_LicenseTableAdapter" Name="EETGW_License" UserDataComponentName="EETGW_LicenseTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_License" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" 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">
@@ -306,182 +158,94 @@ SELECT idx, gcode, expire, name, manu, Supply, qty, uids, sdate, edate, Remark,
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="EEDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="True" msprop:Generator_UserDSName="EEDataSet" msprop:Generator_DataSetName="EEDataSet">
<xs:element name="EEDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="True" msprop:Generator_DataSetName="EEDataSet" msprop:Generator_UserDSName="EEDataSet">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="EETGW_EducationList" msprop:Generator_RowClassName="EETGW_EducationListRow" msprop:Generator_RowEvHandlerName="EETGW_EducationListRowChangeEventHandler" msprop:Generator_RowDeletedName="EETGW_EducationListRowDeleted" msprop:Generator_RowDeletingName="EETGW_EducationListRowDeleting" msprop:Generator_RowEvArgName="EETGW_EducationListRowChangeEvent" msprop:Generator_TablePropName="EETGW_EducationList" msprop:Generator_RowChangedName="EETGW_EducationListRowChanged" msprop:Generator_RowChangingName="EETGW_EducationListRowChanging" msprop:Generator_TableClassName="EETGW_EducationListDataTable" msprop:Generator_UserTableName="EETGW_EducationList" msprop:Generator_TableVarName="tableEETGW_EducationList">
<xs:element name="EETGW_License" msprop:Generator_TableClassName="EETGW_LicenseDataTable" msprop:Generator_RowEvArgName="EETGW_LicenseRowChangeEvent" msprop:Generator_TableVarName="tableEETGW_License" msprop:Generator_TablePropName="EETGW_License" msprop:Generator_RowDeletingName="EETGW_LicenseRowDeleting" msprop:Generator_RowChangingName="EETGW_LicenseRowChanging" msprop:Generator_RowEvHandlerName="EETGW_LicenseRowChangeEventHandler" msprop:Generator_RowDeletedName="EETGW_LicenseRowDeleted" msprop:Generator_UserTableName="EETGW_License" msprop:Generator_RowChangedName="EETGW_LicenseRowChanged" msprop:Generator_RowClassName="EETGW_LicenseRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_UserColumnName="idx" type="xs:int" />
<xs:element name="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_UserColumnName="gcode" msprop:Generator_ColumnVarNameInTable="columngcode">
<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="gcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sdate" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="sdate" msprop:Generator_UserColumnName="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edate" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_UserColumnName="edate" msprop:Generator_ColumnVarNameInTable="columnedate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="title" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_UserColumnName="title" msprop:Generator_ColumnVarNameInTable="columntitle" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edutype" msprop:Generator_ColumnPropNameInTable="edutypeColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edutype" msprop:Generator_UserColumnName="edutype" msprop:Generator_ColumnVarNameInTable="columnedutype" minOccurs="0">
<xs:element name="expire" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="expire" msprop:Generator_ColumnVarNameInTable="columnexpire" msprop:Generator_ColumnPropNameInTable="expireColumn" msprop:Generator_UserColumnName="expire" type="xs:boolean" minOccurs="0" />
<xs:element name="name" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="proposal" msprop:Generator_ColumnPropNameInTable="proposalColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="proposal" msprop:Generator_UserColumnName="proposal" msprop:Generator_ColumnVarNameInTable="columnproposal" minOccurs="0">
<xs:element name="manu" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="manu" msprop:Generator_ColumnVarNameInTable="columnmanu" msprop:Generator_ColumnPropNameInTable="manuColumn" msprop:Generator_UserColumnName="manu" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="target" msprop:Generator_ColumnPropNameInTable="targetColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="target" msprop:Generator_UserColumnName="target" msprop:Generator_ColumnVarNameInTable="columntarget" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="eduoffice" msprop:Generator_ColumnPropNameInTable="eduofficeColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="eduoffice" msprop:Generator_UserColumnName="eduoffice" msprop:Generator_ColumnVarNameInTable="columneduoffice" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="meettype" msprop:Generator_ColumnPropNameInTable="meettypeColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="meettype" msprop:Generator_UserColumnName="meettype" msprop:Generator_ColumnVarNameInTable="columnmeettype" minOccurs="0">
<xs:element name="Supply" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Supply" msprop:Generator_ColumnVarNameInTable="columnSupply" msprop:Generator_ColumnPropNameInTable="SupplyColumn" msprop:Generator_UserColumnName="Supply" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="location" msprop:Generator_ColumnPropNameInTable="locationColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="location" msprop:Generator_UserColumnName="location" msprop:Generator_ColumnVarNameInTable="columnlocation" minOccurs="0">
<xs:element name="qty" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="qty" msprop:Generator_ColumnVarNameInTable="columnqty" msprop:Generator_ColumnPropNameInTable="qtyColumn" msprop:Generator_UserColumnName="qty" type="xs:int" minOccurs="0" />
<xs:element name="uids" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="uids" msprop:Generator_ColumnVarNameInTable="columnuids" msprop:Generator_ColumnPropNameInTable="uidsColumn" msprop:Generator_UserColumnName="uids" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="price" msprop:Generator_ColumnPropNameInTable="priceColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="price" msprop:Generator_UserColumnName="price" msprop:Generator_ColumnVarNameInTable="columnprice" type="xs:decimal" minOccurs="0" />
<xs:element name="qty" msprop:Generator_ColumnPropNameInTable="qtyColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="qty" msprop:Generator_UserColumnName="qty" msprop:Generator_ColumnVarNameInTable="columnqty" type="xs:short" minOccurs="0" />
<xs:element name="amt" msprop:Generator_ColumnPropNameInTable="amtColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="amt" msprop:Generator_UserColumnName="amt" msprop:Generator_ColumnVarNameInTable="columnamt" type="xs:decimal" minOccurs="0" />
<xs:element name="wuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_UserColumnName="wuid">
<xs:element name="sdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:Generator_UserColumnName="sdate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_ColumnVarNameInTable="columnedate" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:Generator_UserColumnName="edate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EETGW_License" msprop:Generator_RowClassName="EETGW_LicenseRow" msprop:Generator_RowEvHandlerName="EETGW_LicenseRowChangeEventHandler" msprop:Generator_RowDeletedName="EETGW_LicenseRowDeleted" msprop:Generator_RowDeletingName="EETGW_LicenseRowDeleting" msprop:Generator_RowEvArgName="EETGW_LicenseRowChangeEvent" msprop:Generator_TablePropName="EETGW_License" msprop:Generator_RowChangedName="EETGW_LicenseRowChanged" msprop:Generator_RowChangingName="EETGW_LicenseRowChanging" msprop:Generator_TableClassName="EETGW_LicenseDataTable" msprop:Generator_UserTableName="EETGW_License" msprop:Generator_TableVarName="tableEETGW_License">
<xs:complexType>
<xs:sequence>
<xs:element name="idx" msdata:ReadOnly="true" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="-1" msdata:AutoIncrementStep="-1" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_UserColumnName="idx" type="xs:int" />
<xs:element name="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_UserColumnName="gcode" msprop:Generator_ColumnVarNameInTable="columngcode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="expire" msprop:Generator_ColumnPropNameInTable="expireColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="expire" msprop:Generator_UserColumnName="expire" msprop:Generator_ColumnVarNameInTable="columnexpire" type="xs:boolean" minOccurs="0" />
<xs:element name="name" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_UserColumnName="name" msprop:Generator_ColumnVarNameInTable="columnname" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="manu" msprop:Generator_ColumnPropNameInTable="manuColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="manu" msprop:Generator_UserColumnName="manu" msprop:Generator_ColumnVarNameInTable="columnmanu" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Supply" msprop:Generator_ColumnPropNameInTable="SupplyColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Supply" msprop:Generator_UserColumnName="Supply" msprop:Generator_ColumnVarNameInTable="columnSupply" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="qty" msprop:Generator_ColumnPropNameInTable="qtyColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="qty" msprop:Generator_UserColumnName="qty" msprop:Generator_ColumnVarNameInTable="columnqty" type="xs:int" minOccurs="0" />
<xs:element name="uids" msprop:Generator_ColumnPropNameInTable="uidsColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="uids" msprop:Generator_UserColumnName="uids" msprop:Generator_ColumnVarNameInTable="columnuids" minOccurs="0">
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
<xs:element name="Remark" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Remark" msprop:Generator_ColumnVarNameInTable="columnRemark" msprop:Generator_ColumnPropNameInTable="RemarkColumn" msprop:Generator_UserColumnName="Remark" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sdate" msprop:Generator_ColumnPropNameInTable="sdateColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="sdate" msprop:Generator_UserColumnName="sdate" msprop:Generator_ColumnVarNameInTable="columnsdate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edate" msprop:Generator_ColumnPropNameInTable="edateColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_UserColumnName="edate" msprop:Generator_ColumnVarNameInTable="columnedate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_UserColumnName="wuid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
<xs:element name="Remark" msprop:Generator_ColumnPropNameInTable="RemarkColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Remark" msprop:Generator_UserColumnName="Remark" msprop:Generator_ColumnVarNameInTable="columnRemark" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Version" msprop:Generator_ColumnPropNameInTable="VersionColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Version" msprop:Generator_UserColumnName="Version" msprop:Generator_ColumnVarNameInTable="columnVersion" minOccurs="0">
<xs:element name="Version" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Version" msprop:Generator_ColumnVarNameInTable="columnVersion" msprop:Generator_ColumnPropNameInTable="VersionColumn" msprop:Generator_UserColumnName="Version" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SerialNo" msprop:Generator_ColumnPropNameInTable="SerialNoColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="SerialNo" msprop:Generator_UserColumnName="SerialNo" msprop:Generator_ColumnVarNameInTable="columnSerialNo" minOccurs="0">
<xs:element name="SerialNo" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="SerialNo" msprop:Generator_ColumnVarNameInTable="columnSerialNo" msprop:Generator_ColumnPropNameInTable="SerialNoColumn" msprop:Generator_UserColumnName="SerialNo" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MeterialNo" msprop:Generator_ColumnPropNameInTable="MeterialNoColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="MeterialNo" msprop:Generator_UserColumnName="MeterialNo" msprop:Generator_ColumnVarNameInTable="columnMeterialNo" minOccurs="0">
<xs:element name="MeterialNo" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="MeterialNo" msprop:Generator_ColumnVarNameInTable="columnMeterialNo" msprop:Generator_ColumnPropNameInTable="MeterialNoColumn" msprop:Generator_UserColumnName="MeterialNo" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
@@ -494,10 +258,6 @@ SELECT idx, gcode, expire, name, manu, Supply, qty, uids, sdate, edate, Remark,
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:EETGW_EducationList" />
<xs:field xpath="mstns:idx" />
</xs:unique>
<xs:unique name="EETGW_License_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:EETGW_License" />
<xs:field xpath="mstns:idx" />
</xs:unique>

View File

@@ -4,9 +4,8 @@
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="29" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="110" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:EETGW_EducationList" ZOrder="2" X="204" Y="154" Height="305" Width="270" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_License" ZOrder="1" X="599" Y="151" Height="305" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
</Shapes>
<Connectors />

View File

@@ -1,680 +0,0 @@
namespace FED0000
{
partial class fEdulist
{
/// <summary>
/// 필수 디자이너 변수입니다.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 사용 중인 모든 리소스를 정리합니다.
/// </summary>
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fEdulist));
FarPoint.Win.Spread.CellType.TextCellType textCellType1 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType2 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType3 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType4 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType5 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType6 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType7 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType8 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType9 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType2 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.NumberCellType numberCellType3 = new FarPoint.Win.Spread.CellType.NumberCellType();
this.dsPurchase = new FED0000.EEDataSet();
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.ta = new FED0000.EEDataSetTableAdapters.EETGW_EducationListTableAdapter();
this.tam = new FED0000.EEDataSetTableAdapters.TableAdapterManager();
this.bn = new System.Windows.Forms.BindingNavigator(this.components);
this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.btAdd = new System.Windows.Forms.ToolStripButton();
this.btCopy = new System.Windows.Forms.ToolStripButton();
this.btEdit = new System.Windows.Forms.ToolStripButton();
this.btDel = new System.Windows.Forms.ToolStripButton();
this.btSave = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
this.tbFind = new System.Windows.Forms.ToolStripTextBox();
this.btFind = new System.Windows.Forms.ToolStripButton();
this.cm1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.columnSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.exportDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel();
this.dtSD = new System.Windows.Forms.ToolStripTextBox();
this.lbEnd = new System.Windows.Forms.ToolStripLabel();
this.dtED = new System.Windows.Forms.ToolStripTextBox();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
this.tbRequest = new System.Windows.Forms.ToolStripTextBox();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.btSearch = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dsPurchase)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
this.cm1.SuspendLayout();
this.toolStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit();
this.SuspendLayout();
//
// dsPurchase
//
this.dsPurchase.DataSetName = "EEDataSet";
this.dsPurchase.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// bs
//
this.bs.DataMember = "EETGW_EducationList";
this.bs.DataSource = this.dsPurchase;
this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged);
//
// ta
//
this.ta.ClearBeforeFill = true;
//
// tam
//
this.tam.BackupDataSetBeforeUpdate = true;
this.tam.EETGW_EducationListTableAdapter = this.ta;
this.tam.EETGW_LicenseTableAdapter = null;
this.tam.UpdateOrder = FED0000.EEDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;
//
// bn
//
this.bn.AddNewItem = null;
this.bn.BindingSource = this.bs;
this.bn.CountItem = this.bindingNavigatorCountItem;
this.bn.DeleteItem = null;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.bindingNavigatorMoveFirstItem,
this.bindingNavigatorMovePreviousItem,
this.bindingNavigatorSeparator,
this.bindingNavigatorPositionItem,
this.bindingNavigatorCountItem,
this.bindingNavigatorSeparator1,
this.bindingNavigatorMoveNextItem,
this.bindingNavigatorMoveLastItem,
this.bindingNavigatorSeparator2,
this.btAdd,
this.btCopy,
this.btEdit,
this.btDel,
this.btSave,
this.toolStripSeparator1,
this.toolStripLabel2,
this.tbFind,
this.btFind});
this.bn.Location = new System.Drawing.Point(0, 645);
this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.bindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(1244, 25);
this.bn.TabIndex = 0;
this.bn.Text = "bindingNavigator1";
//
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22);
this.bindingNavigatorCountItem.Text = "/{0}";
this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수";
//
// bindingNavigatorMoveFirstItem
//
this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image")));
this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem";
this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동";
//
// bindingNavigatorMovePreviousItem
//
this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image")));
this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem";
this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동";
//
// bindingNavigatorSeparator
//
this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator";
this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25);
//
// bindingNavigatorPositionItem
//
this.bindingNavigatorPositionItem.AccessibleName = "위치";
this.bindingNavigatorPositionItem.AutoSize = false;
this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem";
this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23);
this.bindingNavigatorPositionItem.Text = "0";
this.bindingNavigatorPositionItem.ToolTipText = "현재 위치";
//
// bindingNavigatorSeparator1
//
this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1";
this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25);
//
// bindingNavigatorMoveNextItem
//
this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image")));
this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem";
this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveNextItem.Text = "다음으로 이동";
//
// bindingNavigatorMoveLastItem
//
this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image")));
this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem";
this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동";
//
// bindingNavigatorSeparator2
//
this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2";
this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25);
//
// btAdd
//
this.btAdd.Image = ((System.Drawing.Image)(resources.GetObject("btAdd.Image")));
this.btAdd.Name = "btAdd";
this.btAdd.RightToLeftAutoMirrorImage = true;
this.btAdd.Size = new System.Drawing.Size(67, 22);
this.btAdd.Text = "추가(&A)";
this.btAdd.Click += new System.EventHandler(this.bindingNavigatorAddNewItem_Click);
//
// btCopy
//
this.btCopy.Image = ((System.Drawing.Image)(resources.GetObject("btCopy.Image")));
this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btCopy.Name = "btCopy";
this.btCopy.Size = new System.Drawing.Size(67, 22);
this.btCopy.Text = "복사(&C)";
//
// btEdit
//
this.btEdit.Image = ((System.Drawing.Image)(resources.GetObject("btEdit.Image")));
this.btEdit.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btEdit.Name = "btEdit";
this.btEdit.Size = new System.Drawing.Size(65, 22);
this.btEdit.Text = "편집(&E)";
this.btEdit.Visible = false;
this.btEdit.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// btDel
//
this.btDel.Image = ((System.Drawing.Image)(resources.GetObject("btDel.Image")));
this.btDel.Name = "btDel";
this.btDel.RightToLeftAutoMirrorImage = true;
this.btDel.Size = new System.Drawing.Size(68, 22);
this.btDel.Text = "삭제(&D)";
this.btDel.Click += new System.EventHandler(this.bindingNavigatorDeleteItem_Click);
//
// btSave
//
this.btSave.Image = global::FED0000.Properties.Resources.action_save;
this.btSave.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(66, 22);
this.btSave.Text = "저장(&S)";
this.btSave.Click += new System.EventHandler(this.btSave_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// toolStripLabel2
//
this.toolStripLabel2.Name = "toolStripLabel2";
this.toolStripLabel2.Size = new System.Drawing.Size(31, 22);
this.toolStripLabel2.Text = "검색";
//
// tbFind
//
this.tbFind.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbFind.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.tbFind.Name = "tbFind";
this.tbFind.Size = new System.Drawing.Size(100, 25);
this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbFind_KeyDown);
//
// btFind
//
this.btFind.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.btFind.Image = ((System.Drawing.Image)(resources.GetObject("btFind.Image")));
this.btFind.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btFind.Name = "btFind";
this.btFind.Size = new System.Drawing.Size(23, 22);
this.btFind.Text = "toolStripButton2";
this.btFind.Click += new System.EventHandler(this.btFind_Click);
//
// cm1
//
this.cm1.Font = new System.Drawing.Font("맑은 고딕", 20F);
this.cm1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.columnSizeToolStripMenuItem,
this.toolStripMenuItem3,
this.exportDataToolStripMenuItem});
this.cm1.Name = "contextMenuStrip1";
this.cm1.Size = new System.Drawing.Size(314, 94);
//
// columnSizeToolStripMenuItem
//
this.columnSizeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.autoToolStripMenuItem,
this.resetToolStripMenuItem,
this.saveToolStripMenuItem,
this.loadToolStripMenuItem});
this.columnSizeToolStripMenuItem.Name = "columnSizeToolStripMenuItem";
this.columnSizeToolStripMenuItem.Size = new System.Drawing.Size(313, 42);
this.columnSizeToolStripMenuItem.Text = "Column Size";
//
// autoToolStripMenuItem
//
this.autoToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("autoToolStripMenuItem.Image")));
this.autoToolStripMenuItem.Name = "autoToolStripMenuItem";
this.autoToolStripMenuItem.Size = new System.Drawing.Size(159, 42);
this.autoToolStripMenuItem.Text = "Auto";
this.autoToolStripMenuItem.Click += new System.EventHandler(this.autoToolStripMenuItem_Click);
//
// resetToolStripMenuItem
//
this.resetToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("resetToolStripMenuItem.Image")));
this.resetToolStripMenuItem.Name = "resetToolStripMenuItem";
this.resetToolStripMenuItem.Size = new System.Drawing.Size(159, 42);
this.resetToolStripMenuItem.Text = "Reset";
this.resetToolStripMenuItem.Click += new System.EventHandler(this.resetToolStripMenuItem_Click);
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem.Image")));
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.Size = new System.Drawing.Size(159, 42);
this.saveToolStripMenuItem.Text = "Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// loadToolStripMenuItem
//
this.loadToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("loadToolStripMenuItem.Image")));
this.loadToolStripMenuItem.Name = "loadToolStripMenuItem";
this.loadToolStripMenuItem.Size = new System.Drawing.Size(159, 42);
this.loadToolStripMenuItem.Text = "Load";
this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.Size = new System.Drawing.Size(310, 6);
//
// exportDataToolStripMenuItem
//
this.exportDataToolStripMenuItem.Name = "exportDataToolStripMenuItem";
this.exportDataToolStripMenuItem.Size = new System.Drawing.Size(313, 42);
this.exportDataToolStripMenuItem.Text = "목록 내보내기(xls)";
this.exportDataToolStripMenuItem.Click += new System.EventHandler(this.exportDataToolStripMenuItem_Click);
//
// toolStrip1
//
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(30, 30);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripLabel4,
this.dtSD,
this.lbEnd,
this.dtED,
this.toolStripSeparator2,
this.toolStripLabel3,
this.tbRequest,
this.toolStripSeparator4,
this.btSearch,
this.toolStripSeparator5,
this.toolStripButton2});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1244, 37);
this.toolStrip1.TabIndex = 3;
this.toolStrip1.Text = "toolStrip1";
//
// toolStripLabel4
//
this.toolStripLabel4.Name = "toolStripLabel4";
this.toolStripLabel4.Size = new System.Drawing.Size(43, 34);
this.toolStripLabel4.Text = "시작일";
//
// dtSD
//
this.dtSD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dtSD.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.dtSD.Name = "dtSD";
this.dtSD.Size = new System.Drawing.Size(90, 37);
this.dtSD.Text = "1982-11-23";
this.dtSD.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lbEnd
//
this.lbEnd.Name = "lbEnd";
this.lbEnd.Size = new System.Drawing.Size(15, 34);
this.lbEnd.Text = "~";
this.lbEnd.Click += new System.EventHandler(this.lbEnd_Click);
//
// dtED
//
this.dtED.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dtED.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.dtED.Name = "dtED";
this.dtED.Size = new System.Drawing.Size(90, 37);
this.dtED.Text = "1982-11-23";
this.dtED.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 37);
//
// toolStripLabel3
//
this.toolStripLabel3.Name = "toolStripLabel3";
this.toolStripLabel3.Size = new System.Drawing.Size(43, 34);
this.toolStripLabel3.Text = "사용자";
this.toolStripLabel3.Click += new System.EventHandler(this.toolStripLabel3_Click);
//
// tbRequest
//
this.tbRequest.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbRequest.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.tbRequest.Name = "tbRequest";
this.tbRequest.Size = new System.Drawing.Size(70, 37);
this.tbRequest.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.tbRequest.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbRequest_KeyDown);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(6, 37);
//
// btSearch
//
this.btSearch.Image = ((System.Drawing.Image)(resources.GetObject("btSearch.Image")));
this.btSearch.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btSearch.Name = "btSearch";
this.btSearch.Size = new System.Drawing.Size(80, 34);
this.btSearch.Text = "조회(&R)";
this.btSearch.Click += new System.EventHandler(this.btSearch_Click);
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(6, 37);
//
// toolStripButton2
//
this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(65, 34);
this.toolStripButton2.Text = "닫기";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click_1);
//
// fpSpread1
//
this.fpSpread1.AccessibleDescription = "";
this.fpSpread1.ContextMenuStrip = this.cm1;
this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill;
this.fpSpread1.Location = new System.Drawing.Point(0, 37);
this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(1244, 585);
this.fpSpread1.TabIndex = 4;
this.fpSpread1.EditModeOff += new System.EventHandler(this.fpSpread1_EditModeOff);
//
// fpSpread1_Sheet1
//
this.fpSpread1_Sheet1.Reset();
this.fpSpread1_Sheet1.SheetName = "Sheet1";
// Formulas and custom names must be loaded with R1C1 reference style
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1;
this.fpSpread1_Sheet1.ColumnCount = 12;
this.fpSpread1_Sheet1.ActiveColumnIndex = -1;
this.fpSpread1_Sheet1.ActiveRowIndex = -1;
this.fpSpread1_Sheet1.AutoGenerateColumns = false;
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 0).Value = "시작일";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 1).Value = "완료일";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 2).Value = "교육과정명";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 3).Value = "교육유형";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 4).Value = "교육목적";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 5).Value = "교육목표";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 6).Value = "교육기관";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 7).Value = "집합유형";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 8).Value = "교육장소";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 9).Value = "교육비";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 10).Value = "인원수";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 11).Value = "총 교육비";
this.fpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 39F;
this.fpSpread1_Sheet1.Columns.Get(0).CellType = textCellType1;
this.fpSpread1_Sheet1.Columns.Get(0).DataField = "sdate";
this.fpSpread1_Sheet1.Columns.Get(0).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(0).Label = "시작일";
this.fpSpread1_Sheet1.Columns.Get(0).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(0).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(1).CellType = textCellType2;
this.fpSpread1_Sheet1.Columns.Get(1).DataField = "edate";
this.fpSpread1_Sheet1.Columns.Get(1).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(1).Label = "완료일";
this.fpSpread1_Sheet1.Columns.Get(1).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(1).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(2).CellType = textCellType3;
this.fpSpread1_Sheet1.Columns.Get(2).DataField = "title";
this.fpSpread1_Sheet1.Columns.Get(2).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(2).Label = "교육과정명";
this.fpSpread1_Sheet1.Columns.Get(2).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(2).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(3).CellType = textCellType4;
this.fpSpread1_Sheet1.Columns.Get(3).DataField = "edutype";
this.fpSpread1_Sheet1.Columns.Get(3).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(3).Label = "교육유형";
this.fpSpread1_Sheet1.Columns.Get(3).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(3).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(4).CellType = textCellType5;
this.fpSpread1_Sheet1.Columns.Get(4).DataField = "proposal";
this.fpSpread1_Sheet1.Columns.Get(4).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(4).Label = "교육목적";
this.fpSpread1_Sheet1.Columns.Get(4).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(4).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(5).CellType = textCellType6;
this.fpSpread1_Sheet1.Columns.Get(5).DataField = "target";
this.fpSpread1_Sheet1.Columns.Get(5).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(5).Label = "교육목표";
this.fpSpread1_Sheet1.Columns.Get(5).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(5).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(6).CellType = textCellType7;
this.fpSpread1_Sheet1.Columns.Get(6).DataField = "eduoffice";
this.fpSpread1_Sheet1.Columns.Get(6).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(6).Label = "교육기관";
this.fpSpread1_Sheet1.Columns.Get(6).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(6).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(7).CellType = textCellType8;
this.fpSpread1_Sheet1.Columns.Get(7).DataField = "meettype";
this.fpSpread1_Sheet1.Columns.Get(7).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(7).Label = "집합유형";
this.fpSpread1_Sheet1.Columns.Get(7).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(7).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(8).CellType = textCellType9;
this.fpSpread1_Sheet1.Columns.Get(8).DataField = "location";
this.fpSpread1_Sheet1.Columns.Get(8).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(8).Label = "교육장소";
this.fpSpread1_Sheet1.Columns.Get(8).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(8).Width = 151F;
numberCellType1.MaximumValue = 999999999999999D;
numberCellType1.MinimumValue = -999999999999999D;
this.fpSpread1_Sheet1.Columns.Get(9).CellType = numberCellType1;
this.fpSpread1_Sheet1.Columns.Get(9).DataField = "price";
this.fpSpread1_Sheet1.Columns.Get(9).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(9).Label = "교육비";
this.fpSpread1_Sheet1.Columns.Get(9).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(9).Width = 75F;
numberCellType2.DecimalPlaces = 0;
numberCellType2.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.Yes;
numberCellType2.MaximumValue = 32767D;
numberCellType2.MinimumValue = -32768D;
this.fpSpread1_Sheet1.Columns.Get(10).CellType = numberCellType2;
this.fpSpread1_Sheet1.Columns.Get(10).DataField = "qty";
this.fpSpread1_Sheet1.Columns.Get(10).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(10).Label = "인원수";
this.fpSpread1_Sheet1.Columns.Get(10).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(11).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
numberCellType3.MaximumValue = 999999999999999D;
numberCellType3.MinimumValue = -999999999999999D;
this.fpSpread1_Sheet1.Columns.Get(11).CellType = numberCellType3;
this.fpSpread1_Sheet1.Columns.Get(11).DataField = "amt";
this.fpSpread1_Sheet1.Columns.Get(11).Formula = "RC[-2]+RC[-1]";
this.fpSpread1_Sheet1.Columns.Get(11).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Right;
this.fpSpread1_Sheet1.Columns.Get(11).Label = "총 교육비";
this.fpSpread1_Sheet1.Columns.Get(11).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(11).Width = 75F;
this.fpSpread1_Sheet1.DataAutoSizeColumns = false;
this.fpSpread1_Sheet1.DataSource = this.bs;
this.fpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = false;
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1;
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.label1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.Location = new System.Drawing.Point(0, 622);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(5, 0, 0, 0);
this.label1.Size = new System.Drawing.Size(1244, 23);
this.label1.TabIndex = 6;
this.label1.Text = "--";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// fEdulist
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1244, 670);
this.Controls.Add(this.fpSpread1);
this.Controls.Add(this.label1);
this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.bn);
this.DoubleBuffered = true;
this.Name = "fEdulist";
this.Text = "교육 목록";
this.Load += new System.EventHandler(this.@__Load);
((System.ComponentModel.ISupportInitialize)(this.dsPurchase)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
this.cm1.ResumeLayout(false);
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private EEDataSet dsPurchase;
private System.Windows.Forms.BindingSource bs;
private EEDataSetTableAdapters.EETGW_EducationListTableAdapter ta;
private EEDataSetTableAdapters.TableAdapterManager tam;
private System.Windows.Forms.BindingNavigator bn;
private System.Windows.Forms.ToolStripButton btAdd;
private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
private System.Windows.Forms.ToolStripButton btDel;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripTextBox dtSD;
private System.Windows.Forms.ToolStripLabel lbEnd;
private System.Windows.Forms.ToolStripTextBox dtED;
private System.Windows.Forms.ToolStripButton btSearch;
private System.Windows.Forms.ContextMenuStrip cm1;
private System.Windows.Forms.ToolStripLabel toolStripLabel3;
private System.Windows.Forms.ToolStripTextBox tbRequest;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton btSave;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
private System.Windows.Forms.ToolStripTextBox tbFind;
private System.Windows.Forms.ToolStripButton btFind;
private FarPoint.Win.Spread.FpSpread fpSpread1;
private System.Windows.Forms.ToolStripMenuItem columnSizeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem autoToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem resetToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem;
private System.Windows.Forms.ToolStripButton btEdit;
private System.Windows.Forms.ToolStripMenuItem exportDataToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
private System.Windows.Forms.ToolStripButton btCopy;
private System.Windows.Forms.ToolStripButton toolStripButton2;
private System.Windows.Forms.ToolStripLabel toolStripLabel4;
private System.Windows.Forms.Label label1;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
}
}

View File

@@ -1,781 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using util = FCOMMON.Util;
namespace FED0000
{
public partial class fEdulist : FCOMMON.fBase
{
string fn_fpcolsize = "";
public fEdulist()
{
InitializeComponent();
Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
Properties.Settings.Default["EEEntities"] = FCOMMON.info.CS;
fn_fpcolsize = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
this.dsPurchase.EETGW_EducationList.TableNewRow += Purchase_TableNewRow;
this.FormClosing += FPurchase_FormClosing;
this.FormClosed += __Closed;
dtSD.KeyDown += dtSD_KeyDown;
dtED.KeyDown += dtSD_KeyDown;
//this.dv1.CellFormatting += dv1_CellFormatting;
}
private void FPurchase_FormClosing(object sender, FormClosingEventArgs e)
{
if (dsPurchase.HasChanges())
{
var dlg = FCOMMON.Util.MsgQ("변경된 자료가 있습니다. 화면을 닫을까요? 닫으면 변경된 자료는 손실 됩니다");
if (dlg != DialogResult.Yes)
{
e.Cancel = true;
return;
}
}
}
void dtSD_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter) return;
var tb = sender as ToolStripTextBox;
var input = tb.Text.Trim();
if (input == "") tb.Text = DateTime.Now.ToShortDateString();
else
{
string dt = string.Empty;
if (!util.MakeDateString(input, out dt))
{
FCOMMON.Util.MsgE("입력값이 올바르지 않습니다.");
tb.SelectAll();
tb.Focus();
return;
}
else
{
tb.Text = dt;
}
}
if (tb == dtSD)
{
dtED.Focus();
dtED.SelectAll();
}
else
{
btSearch.PerformClick();
tb.SelectAll();
}
}
void __Closed(object sender, FormClosedEventArgs e)
{
}
void Purchase_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["gcode"] = FCOMMON.info.Login.gcode;
e.Row["sdate"] = DateTime.Now.ToShortDateString();
e.Row["edate"] = DateTime.Now.ToShortDateString();
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
}
private void __Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
this.tbRequest.Text = string.Empty; //양진원 FCOMMON.info.Login.nameK;
this.dtSD.Text = DateTime.Now.ToString("yyyy-01-01");
this.dtED.Text = DateTime.Now.ToString("yyyy-12-31");
////state list
//var stList = FCOMMON.DBM.getCodeList("04");
//this.cmbState.Items.Clear();
//cmbState.Items.Add("-- 전체 --");
//foreach (var item in stList)
// cmbState.Items.Add(item.Value);
//cmbState.Items.Add("<=Received");
//this.cmbState.SelectedIndex = 0; //all기본 - 양진원
////this.cmbCr.SelectedIndex = 1;
//일반사용자의경우에는 상태를 변경하지 못한다.
//int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.purchase));
//if (curLevel >= 5)
//{
// btSave.Visible = true;
//}
//else
//{
// btSave.Visible = false;
// fpSpread1.EditMode = false;
// fpSpread1.Sheets[0].SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row;
// fpSpread1.EditModePermanent = false;
// fpSpread1.EditModeReplace = false;
// foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns)
// col.Locked = true;
//}
refreshData();
}
private void refreshData()
{
try
{
//string state = "%";
//if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0];
//string request = "%";
//if (tbRequest.Text.Trim() != "")
// request = "%" + tbRequest.Text.Trim() + "%";// tbRequest.Text.Substring(1, tbRequest.Text.IndexOf("]") - 1);
//string dateField = "pdate";
//if (cmDate.SelectedIndex == 1) dateField = "indate";
//else if (cmDate.SelectedIndex == 2) dateField = "expdate";
//System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter();
//System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
//cmd.CommandText = " select *,dbo.getusername(request) as requestName,dbo.getusername(receive) as receiveName" +
// " from purchase " +
// " where gcode='" + FCOMMON.info.Login.gcode + "' and isnull(" + dateField + ",'') between @sd and @ed ";
//if (btViewDel.Checked == false)
// cmd.CommandText += " and isnull(isdel,0) = 0";
//if (tbRequest.Text.Trim() != "")
//{
// cmd.CommandText += " and (isnull(dbo.getusername(request),'') like @req or isnull(dbo.getusername(receive),'') like @req)";
//}
//if (cmbState.SelectedIndex != 0)
//{
// if (cmbState.Text.ToUpper() == "<=RECEIVED")
// {
// cmd.CommandText += " and isnull([state],'') in ('','---','Approving','PR','PO')";
// }
// else
// {
// cmd.CommandText += " and isnull([state],'') like @st";
// }
//}
//// else cmd.CommandText += " and (state < '04' or state > '07')";
//if (cmbSort.SelectedIndex == 1) dateField = "edate";
//else if (cmbSort.SelectedIndex == 2) dateField = "sc";
//cmd.CommandText += " ORDER BY " + dateField + " DESC, idx DESC";
//cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@sd", dtSD.Text));
//cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ed", dtED.Text));
//cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@req", request));
//cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@st", state));
//cmd.Connection = this.ta.Connection;
//da.SelectCommand = cmd;
////read adata
//this.dsPurchase.Purchase.Clear();
//da.Fill(this.dsPurchase.Purchase);
//this.dsPurchase.AcceptChanges();
//showSummary();
var sd = this.dtSD.Text.Trim();
var ed = this.dtED.Text.Trim();
this.ta.Fill(this.dsPurchase.EETGW_EducationList, FCOMMON.info.Login.gcode, sd, ed);
FCOMMON.Util.FPColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
FormattingData();
}
void FormattingData()
{
//삭제컬럼인덱스
//this.fpSpread1.SuspendLayout();
//var delindex = this.fpSpread1.ActiveSheet.Columns["isdel"].Index;
//var statindex = this.fpSpread1.ActiveSheet.Columns["state"].Index;
//var crcfindex = this.fpSpread1.ActiveSheet.Columns["crcf"].Index;
//var prjindex = this.fpSpread1.ActiveSheet.Columns["projectidx"].Index;
//for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
//{
// var state = this.fpSpread1.ActiveSheet.GetValue(i, statindex);
// string stateStr = string.Empty;
// if (state != null) stateStr = state.ToString();
// var value = this.fpSpread1.ActiveSheet.GetValue(i, delindex);
// var crcf = this.fpSpread1.ActiveSheet.GetValue(i, crcfindex);
// var str_crcf = string.Empty;
// if (crcf != null) str_crcf = crcf.ToString();
// if (value != null && (Boolean)value)
// {
// this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.Red;
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.White;
// }
// else
// {
// //crcf 에 따라서 배경색 변경
// if (str_crcf != "")
// this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.FromArgb(50, Color.PowderBlue);
// else
// this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.White;
// switch (stateStr.ToLower())
// {
// case "cancled":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Red;
// break;
// case "rejected":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Tomato;
// break;
// case "spr":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Magenta;
// break;
// case "---":
// case "----":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Blue;
// break;
// case "received":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Gray;
// break;
// case "hold":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.HotPink;
// break;
// default:
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Black;
// break;
// }
// }
// //프로젝트가 걸린데이터는 글자를 bold체로 변경한다.
// var prjdata = this.fpSpread1.ActiveSheet.GetValue(i, prjindex);
// if (prjdata != null)
// {
// var pidx = (int)this.fpSpread1.ActiveSheet.GetValue(i, prjindex);
// if (pidx == -1) //프로젝트가 없다
// {
// this.fpSpread1.ActiveSheet.Rows[i].Font = fBase;
// }
// else
// {
// this.fpSpread1.ActiveSheet.Rows[i].Font = fBold;
// }
// }
// else this.fpSpread1.ActiveSheet.Rows[i].Font = fBold;
//}
//this.fpSpread1.ResumeLayout();
}
Font fBase = new Font("맑은 고딕", 9);
Font fBold = new Font("맑은 고딕", 9, FontStyle.Bold);
private void saveData(Boolean prompt)
{
this.Validate();
this.bs.EndEdit();
try
{
var cnt = this.tam.UpdateAll(this.dsPurchase);
if (prompt) FCOMMON.Util.MsgI(string.Format("{0}건의 자료가 저장 되었습니다.", cnt));
}
catch (Exception ex)
{
FCOMMON.Util.MsgE("저장 실패\n" + ex.Message);
}
}
private void btSearch_Click(object sender, EventArgs e)
{
refreshData();
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
func_add();
}
private void tbRequest_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btSearch.PerformClick();
}
private void btSave_Click(object sender, EventArgs e)
{
saveData(true);
}
private void lbEnd_Click(object sender, EventArgs e)
{
//end date
var list = FCOMMON.DBM.getGroupList("pdate", "purchase", "pdate >= '" + dtSD.Text + "'", true);
FCM0000.fLovOneItem f = new FCM0000.fLovOneItem(list);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
dtED.Text = f.Title;
btSearch.PerformClick();
}
}
private void toolStripLabel3_Click(object sender, EventArgs e)
{
//사용자목록처리
if (tbRequest.Text.Trim() == "")
{
tbRequest.Text = FCOMMON.info.Login.nameK;
}
else
{
tbRequest.Text = string.Empty;
}
refreshData();
}
private bool getAdminInput
{
get
{
return FCOMMON.Util.getBit(
FCOMMON.info.Login.gpermission,
(int)FCOMMON.eGroupPermission.purchase_adv);
}
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
func_delete();
}
void func_add()
{
var newdr = this.bs.AddNew();
this.bs.Position = this.bs.Count - 1;
//var newdr = this.dsPurchase.Purchase.NewPurchaseRow();
//if (FCOMMON.info.Login.no == "dev")
// newdr.request = "395552";//string.Format("[{0}] {1}", "395552", "김치균");
//else
// newdr.request = FCOMMON.info.Login.no;
//repeat:
//bool repeat = false;
//DialogResult dlg;
//{
// var f = new fPurchase_Add(newdr);
// dlg = f.ShowDialog();
// repeat = f.repeatAdd;
//}
//if (dlg == System.Windows.Forms.DialogResult.OK)
//{
// //존재하지 않는 sid 는 추가를 해준다.
// var newidx = AddItemInfoGetIndex(newdr);
// if (newidx != -1)
// {
// newdr.pumidx = newidx;
// newdr.EndEdit();
// }
// this.dsPurchase.Purchase.AddPurchaseRow(newdr);
// int cnt = this.ta.Update(newdr);
// if (cnt == 1)
// {
// if (repeat)
// {
// FCOMMON.Util.MsgI("저장 완료\n\n연속 저장 모드이므로 직전에 입력된 자료가 자동으로 설정 됩니다.");
// }
// else FCOMMON.Util.MsgI("저장 완료");
// }
// else
// {
// FCOMMON.Util.MsgE("저장 실패\n\n다시 시도하시고 증상이 반복되면 chikyun.kim@amkor.co.kr 로 문의 주십시요");
// }
// newdr.AcceptChanges();
// if (repeat)
// {
// var newdro = this.dsPurchase.Purchase.NewPurchaseRow();
// FCOMMON.Util.CopyData(newdr, newdro);
// newdro.idx = -1;
// newdro.wdate = DateTime.Now;
// newdr = newdro; //change
// goto repeat;
// }
// else refreshData(); //181210
//}
//else newdr.Delete();
}
void func_delete()
{
var drv = bs.Current as DataRowView;
if (drv == null) return;
//var dlg = FCOMMON.Util.MsgQ("현재 선택된 데이터를 삭제 하시겠습니까?");
//if (dlg != DialogResult.Yes) return;
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.purchase));
var dr = drv.Row as EEDataSet.EETGW_EducationListRow;
//if (dr.sc != "")
//{
// if (curLevel < 5)
// {
// FCOMMON.Util.MsgE("일반 사용자는 SC값이 있는 자료를 삭제할 수 없습니다.");
// return;
// }
//}
//if (dr.request != FCOMMON.info.Login.no)
//{
// if (curLevel < 5)
// {
// FCOMMON.Util.MsgE("일반 사용자는 타인의 자료를 삭제할 수 없습니다.");
// return;
// }
//}
var dlg = FCOMMON.Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?");
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
bs.RemoveCurrent();
bs.EndEdit();
}
private void btFind_Click(object sender, EventArgs e)
{
var search = tbFind.Text.Trim();
search = search.Replace("*", "x");
if (tbFind.Text != search) tbFind.Text = search;
try
{
if (search.isEmpty())
{
this.bs.Filter = "";
tbFind.BackColor = Color.White;
}
else
{
var cols = new List<string>();
cols.Add("title like ?");
cols.Add("proposal like ?");
cols.Add("target like ?");
cols.Add("eduoffice like ?");
cols.Add("location like ?");
search = search.Replace("'", "''");
string filter = string.Join(" or ", cols.ToArray());
filter = filter.Replace("?", "'%" + search + "%'");
this.bs.Filter = filter;
tbFind.BackColor = Color.Lime;
}
tbFind.SelectAll();
tbFind.Focus();
}
catch (Exception ex)
{
this.tbFind.BackColor = Color.Tomato;
FCOMMON.Util.MsgE(ex.Message);
}
}
private void tbFind_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) btFind.PerformClick();
}
private void editDataToolStripMenuItem_Click(object sender, EventArgs e)
{
Func_Edit();
}
void Func_Edit()
{
//var drv = this.bs.Current as DataRowView;
//if (drv == null) return;
//var newdr = drv.Row as dsPurchase.PurchaseRow;
//bool repeat = false;
//DialogResult dlg;
//{
// var f = new fPurchase_Add(newdr);
// dlg = f.ShowDialog();
// repeat = f.repeatAdd;
//}
//if (dlg == System.Windows.Forms.DialogResult.OK)
//{
// //존재하지 않는 sid 는 추가를 해준다.
// var newidx = AddItemInfoGetIndex(newdr);
// if (newidx != -1)
// {
// newdr.pumidx = newidx;
// newdr.EndEdit();
// }
// if (newdr.RowState != DataRowState.Unchanged)
// {
// this.ta.Update(newdr);
// newdr.AcceptChanges();
// }
//}
//else newdr.RejectChanges();
}
private void autoToolStripMenuItem_Click(object sender, EventArgs e)
{
FCOMMON.Util.FPColSizeAuto(this.fpSpread1);
//this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
//for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
// this.fpSpread1.ActiveSheet.SetRowHeight(i, 25);
//dv1.AutoResizeColumns();
}
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
{
col.Width = 100;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
FCOMMON.Util.FPColsizeSave(this.fpSpread1, fn_fpcolsize);
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
FCOMMON.Util.FPColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
Func_Edit();
}
void dv1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
//if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
//var state = this.dv1.Rows[e.RowIndex].Cells["dvc_state"].Value.ToString();
//switch (state)
//{
// case "00": //입력대기(미확인)
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.LightGray;
// break;
// case "01": //파트장 승인 기다림
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.DarkBlue;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
// break;
// case "03": //PO (협력업체 전달)
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.DarkMagenta;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
// break;
// case "04": //자재 수령
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Green;
// break;
// case "05": //canceld (취소)
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.LightGray;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Red;
// break;
// case "06": //cancel (취소됨)
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.HotPink;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black;
// break;
// case "08": //문의
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Green;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.White;
// break;
// default:
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
// this.dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black;
// break;
//}
}
private void updateSCToolStripMenuItem_Click(object sender, EventArgs e)
{
var dlg = FCOMMON.Util.MsgQ("#SC가 없는 자료에 한하여 일괄 기록을 실행 합니다.");
if (dlg == System.Windows.Forms.DialogResult.Yes)
{
}
}
private void exportDataToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "excel|*.xls";
sd.FileName = "edulist.xls";
if (sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
fpSpread1.SaveExcel(sd.FileName,
FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
| FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered
| FarPoint.Excel.ExcelSaveFlags.NoFormulas
| FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
FCOMMON.Util.MsgI("다음 파일이 생성 되었습니다.\n\n" + sd.FileName);
}
}
private void btViewDel_Click(object sender, EventArgs e)
{
refreshData();
}
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
}
void func_copy()
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as EEDataSet.EETGW_EducationListRow;
//현재 데이터를 입력하여 신규 추가를 한다.
var newdr = this.dsPurchase.EETGW_EducationList.NewEETGW_EducationListRow();
FCOMMON.Util.CopyData((System.Data.DataRow)dr, (System.Data.DataRow)newdr);
newdr.sdate = DateTime.Now.ToShortDateString();
newdr.edate = DateTime.Now.ToShortDateString();
newdr.wdate = DateTime.Now;
newdr.wuid = FCOMMON.info.Login.no;
newdr.EndEdit();
this.dsPurchase.EETGW_EducationList.AddEETGW_EducationListRow(newdr);
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null)
{
this.label1.Text = "데이터가 선택되지 않았습니다";
return;
}
var dr = drv.Row as EEDataSet.EETGW_EducationListRow;
// this.label1.Text = string.Format("{0}", dr.bigo.Replace("\r", "").Replace("\n", ""));
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
}
string getmaxstr(string src, int len = 30)
{
if (src.Length > len) return src.Substring(0, len) + "...";
else return src;
}
List<string> ChangeMailAddress(List<string> userid)
{
var db = new DataClasses1DataContext();
List<string> retval = new List<string>();
foreach (var id in userid)
{
UInt32 userno;
if (UInt32.TryParse(id, out userno) == true)
{
var user = db.Users.Where(t => t.id == id).FirstOrDefault();
if (user != null)
{
var data = string.Format("{0}<{1}>", user.name, user.email);
if (retval.Contains(data) == false)
retval.Add(data);
}
}
else
{
if (retval.Contains(id) == false)
retval.Add(id);
}
}
return retval;
}
private void toolStripButton3_Click_1(object sender, EventArgs e)
{
var fn = System.IO.Path.Combine(FCOMMON.Util.CurrentPath, "PurcManual.pdf");
if (System.IO.File.Exists(fn))
{
FCOMMON.Util.RunExplorer(fn);
}
else FCOMMON.Util.MsgE("설명서 파일(manual.pdf)이 없습니다. 개발자 문의 해주세요(chikyun.kim@amkor.co.kr)");
}
private void fpSpread1_EditModeOff(object sender, EventArgs e)
{
}
private void toolStripButton2_Click_1(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@@ -1,306 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dsPurchase.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 17</value>
</metadata>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>195, 17</value>
</metadata>
<metadata name="tam.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>257, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>330, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="btCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFDSURBVDhPlZK9SgNREIXzOpY+gEXQIg+QkMLOTuwsLNRU
ViKIja0SbMRCBQsLUxgQArERf1ARCaLBCErUIoWJjnyzTna4Ccs6cLLkzpzvnr17M5KiMknFQPXyQfbO
m6rNkxtZ3q9LqVyR2bVdVSKEJsbr53dpvnVUrx/RE61W2zI5v6EQqz9rVCwAYLj2+KP6VyL+bJ825LPz
pWYzpknUB7CLARgIE6HK/bfO0F86aklhZiWC8ENEA9D0iUKAKRHgE5kZHdz2VPTyUwsxYHHrWN+TIQAe
6M07F10VvVx+OgZwsgaYO3wZAHhz+ayr5zMAwGAAn8gDMA8F8Fmu7p4Uwh3wibx5vd5TNVptyeaKMQAD
p4o4HJ9oGAD42EQhBoTlE9kFYleEmZQjo+M6q5fJF4thIt4XEZudMfc/Y1i6mrpEfgGL0hchHI3KDgAA
AABJRU5ErkJggg==
</value>
</data>
<data name="btEdit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEvSURBVDhPpZI/S0JRGIed+i6Nbk0t0iCuSkuDi1MfIKfm
+gAOQktTQkMggYtRkwgidKmgyQwMCgqz0CivvvK8cK7neG4KdeHhHs45v+c9/xLyz08Ft713OQ+6SqXV
kfLlnXJw1lSK5VrERqGkMB4JCCLpvQ7lZfDlQJ+B4EnwI9nTkbYdAZMbjxOPq4eJPH1MvXC2sD8XsOzP
0bcX/C3MXEfAfmzBsnCnP10uWBWu3IS+gJOm0w5fHCZiw0aQzu3GC0xYgm2R+poTRnh8HeqNOALu920w
9MK0F8NGkMrs+ALewqrwUXss3ed+vKB6H+rh2OT3SjpO0IBgcyvnCjgDBGCq8mcMiQ3FHAGdLB/J4vMF
KhoI83LXk6m5gCpmufbyOWlgv0BVIMx4JPj7JzIDGHRUPz2nxiQAAAAASUVORK5CYII=
</value>
</data>
<data name="btDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG
QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX
bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII=
</value>
</data>
<data name="btFind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVDhPnZIxS8NQFEb7W/wLjh0Fl9a1SxBHBekkWFd1
qYg4Ci5dndSCg2AHl4LQSaRSKDqoFUE7VAjUmvTKueWmL2mw2gunL7zmO+/mJhmZoTJusdF868vpXUfO
b5/lpPEox9f3SvnsRtk8uojxHQ7HEgSEkXS6vrz3xqtdu+xdfUiheEBsJOGCk/mz/hROUHsIIrp+qIKY
hB/a9r+CVAG4Auj5g7iA5/1NACaptgIVLHkb0wWVw13ZL60p2+uerqkCJs1mMgwUU6d1k/xJwI10RZj1
9TPUN7Wam9dgTMC75QR7TjCBkRQs5Jd1jQS8c1ewtZLTPcQW/peADpC44cudgnjZOQ1OCGjTwkwaGBon
GoSrpcVIQqmAj6LZftFBup9vWiUlUQdIDCbsQrsGZRJKBbOXyA++SlEsu6QjvQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="cm1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>504, 23</value>
</metadata>
<data name="autoToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJXG2JXa+ZLO5ChrlkCy4TZ1kiVvpCN0trvo9SN5xTd4lrfh7iR9zo3S+EGz7JDJ
4TaCromrvC9ymyV+0Dd3mTl1koe72YvN7LTj+9ne6N3g6v7+/0Cw2Stoh////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAInwA/CBzooaAHgQUHKvRQoUABCgUlHFT4IYMCBAsQIIBg
wcBEgh0WCBDAgcAFDAc+fvDQIUKHDgMeEHDQIIFKlgoMGgjQoAGDmwUOehhg4EACBhM+GlzKVOkEBgkO
GBggNOhCBhgCBPBYUEGHmwkCOCDwYMCAll8XHghwgQCHkQDSLjRgAcKDBwAAKNCwgaIHiR4oOKygkuDE
pRQTK6YYEAA7
</value>
</data>
<data name="resetToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfALnik2aXQv7+/dPut73llbfala3LmW6gSWqdQ2eYRGqaSLfck568iYrUQN7yzF6R
PLTXlYjUP8XwmYfQQLbYl4jRQGiaQsPumNbyu7nglNPzsLXYlf7+/lCHK////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIlgA/CBzooaAHgQUHEvSgIEAABQUfHFTIwQECDAMwYDhg
oENCgRw8dBgAAECFBgsweJxYsAODDjApTIhAwCMHkCItGOxwgUCGlQQTeAgJsyhQg0iTGvzQ0qhND0IX
dtBwQcJKDxZsIhQpIcIECkVffmwpYUGDCiUheBQg1cCBAgU2QFDg4KZCDxIZOoQ48S7LpQoDCx4cEAA7
</value>
</data>
<data name="saveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAJXD9Iasxm6MqnSn2lZtjVaRyEpXbYu767TX/2KZztvr/4Gy5KrT/3ut32+gzlFh
e+r0/0RNX9/u/9Ln+8Xg//n8/4e36CkxQz9GVkSCvKjL35/N/Je91K7T5bDS4////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIuQA/CBxIsKDACRwScggQwIGAhwIICBDYQcEEgwg+bNjw
QKCHCQgkQBgpQcKBCg0AEBCoAaRIkhIsVBigUiAHCgwkKNjJU8GAAx0/3NwIAMABCwsaDHCwIGgAChuK
HjiQdMDSAQYEPpWKtKqDBA6yfgiAwGhXpUsTJIgg0AGCo0nRfi1QgO0HAQyQNpCrtkAGDAIFbKi69GsC
un8FEohqdEFavxkyXAhMoPKDBwYMRIiAAcOFoAZDCwwIADs=
</value>
</data>
<data name="loadToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJfL/OTs9HWVsW6aUqnT+6bnZldwkYiux7TZ/O3z+UlVa/P2+ZfTW36wWJDLV4m7
69nn78bi/qjL3qDP+VJhe4rAVa7S40NLXJ3bYJrA1ikxQz5FVdDU22OPRf///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIwQA9CBxIcOCHgx4gWLAgIUOGAwcESBTgAaEFCAEGaBwQ
IGOABwYqerCQsYBJBho7JHgAUqCEDjAxYGBQgYHKBAsoCMzQIUIEmA6CdkCAIOfOBT5/MnBQYSgBozCj
SoVJ4KkCDx1MFhhKFEFVAhMCXM1aAANMoh2qTgh7AWvZmQ6igp0AIEDbDg0aLA06YC4AABA2eBjgYcHG
vmv/Akgg2IMBDgsSdJwcAEICDhoECjDAmQIFBQouXNiwQYPOgqgLBgQAOw==
</value>
</data>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>396, 17</value>
</metadata>
<data name="btSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE4SURBVDhPtZPPasJAEMbzPn0FwWA92JtP4NGKB1/DP7ei
QSsovkChh7ZBrCfpyR4sikopUgq9StFzM/UbZ5asSS4FfzAkO7vft5udiZMEnSBpk5dhFJmncjdHxXaG
A+9K4SbFT1luEwQBbXavVO5d0nI3ovnW5yeiMriiu+kt5asXbABEdgRigAUQDr+aHLU3lxoLl/yPJhvF
GsiYJ/vPdX5qPK3bVJ25VFukafztGQNsKHJ791I3w+8KcpNth8XDz5YxACI/gsR1J8sTYcO4UIzwv1gG
cTshgJ5IT8hChTMHsHi+v+fvffmxywVwN2FDkdsGEOK2ceu4feQ0tDqKyKMGqDfqjvprLzyswuX7Tf4E
dBo6zn/3OB7XHovRyuhQ6+hhYKA9DpL+A1keRebNAhkaJH0OHOcP031C4EjYr6wAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADlSURBVEhL7dQxCsIwFMbxnMrZWatzUXRUCo5ewSs4ewZR
DyDeQfEETsUbRL7YYNSXNC/UOiQP/kvzyE9KUcQ7y/VJtlHFvQYPjzf50xKsJsFmq81WHq538swMO9il
zhALxkWd7kAOJwsnjjPsYNeGs2B14fR5YTYq5O5c1u7sL987iAUjF+6LIjaMKJyDoiAYmVAvn8lsXHij
KBhGwDWof4APihqHqQ+OKhg2X3U/n7+9ah88CKY+pM9ndTgbplDbmQtnwS7UtmPDWfDf/jIRLnKhOuzY
UMSGmyrBauKE26jiohshHicE2B3dbRrmAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>579, 23</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>65</value>
</metadata>
</root>

View File

@@ -95,12 +95,6 @@
<Compile Include="MethodExtentions.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Education\fEdulist.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Education\fEdulist.Designer.cs">
<DependentUpon>fEdulist.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="License\fLicenseList.resx">
<DependentUpon>fLicenseList.cs</DependentUpon>
</EmbeddedResource>
@@ -115,9 +109,6 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="Education\fEdulist.resx">
<DependentUpon>fEdulist.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.config" />
<None Include="DataClasses1.dbml">
<Generator>MSLinqToSQLGenerator</Generator>

View File

@@ -97,7 +97,6 @@
//
this.tam.BackupDataSetBeforeUpdate = true;
this.tam.Connection = null;
this.tam.EETGW_EducationListTableAdapter = null;
this.tam.EETGW_LicenseTableAdapter = null;
this.tam.UpdateOrder = FED0000.EEDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;
//

View File

@@ -146,19 +146,7 @@ namespace FED0000
var drv = bs.Current as DataRowView;
if (drv == null) return;
//var dlg = FCOMMON.Util.MsgQ("현재 선택된 데이터를 삭제 하시겠습니까?");
//if (dlg != DialogResult.Yes) return;
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.purchase));
var dr = drv.Row as EEDataSet.EETGW_EducationListRow;
var dlg = FCOMMON.Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?");
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
bs.RemoveCurrent();
bs.EndEdit();
//삭제기능구현필요
}
@@ -336,21 +324,7 @@ namespace FED0000
void func_copy()
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as EEDataSet.EETGW_LicenseRow;
//현재 데이터를 입력하여 신규 추가를 한다.
var newdr = this.dsPurchase.EETGW_EducationList.NewEETGW_EducationListRow();
FCOMMON.Util.CopyData((System.Data.DataRow)dr, (System.Data.DataRow)newdr);
newdr.sdate = DateTime.Now.ToShortDateString();
newdr.edate = DateTime.Now.ToShortDateString();
newdr.wdate = DateTime.Now;
newdr.wuid = FCOMMON.info.Login.no;
newdr.EndEdit();
this.dsPurchase.EETGW_EducationList.AddEETGW_EducationListRow(newdr);
//복사기능 구현해야함
}
@@ -363,8 +337,6 @@ namespace FED0000
this.label1.Text = "데이터가 선택되지 않았습니다";
return;
}
var dr = drv.Row as EEDataSet.EETGW_EducationListRow;
// this.label1.Text = string.Format("{0}", dr.bigo.Replace("\r", "").Replace("\n", ""));
}
private void toolStripButton4_Click(object sender, EventArgs e)

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
<?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

@@ -1,237 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DSNote" targetNamespace="http://tempuri.org/DSNote.xsd" xmlns:mstns="http://tempuri.org/DSNote.xsd" xmlns="http://tempuri.org/DSNote.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="EETGW_NoteTableAdapter" GeneratorDataComponentClassName="EETGW_NoteTableAdapter" Name="EETGW_Note" UserDataComponentName="EETGW_NoteTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_Note" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" 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">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [EETGW_Note] WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_pdate = 1 AND [pdate] IS NULL) OR ([pdate] = @Original_pdate)) AND ((@IsNull_title = 1 AND [title] IS NULL) OR ([title] = @Original_title)) AND ((@IsNull_uid = 1 AND [uid] IS NULL) OR ([uid] = @Original_uid)) AND ((@IsNull_share = 1 AND [share] IS NULL) OR ([share] = @Original_share)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate) AND ((@IsNull_guid = 1 AND [guid] IS NULL) OR ([guid] = @Original_guid)) AND ((@IsNull_viewcount = 1 AND [viewcount] IS NULL) OR ([viewcount] = @Original_viewcount)) AND ((@IsNull_viewdate = 1 AND [viewdate] IS NULL) OR ([viewdate] = @Original_viewdate)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_pdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_title" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_uid" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_uid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_share" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_share" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_guid" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_guid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_viewdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_viewdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [EETGW_Note] ([gcode], [pdate], [title], [uid], [description2], [share], [wuid], [wdate], [description], [guid], [viewcount], [viewdate]) VALUES (@gcode, @pdate, @title, @uid, @description2, @share, @wuid, @wdate, @description, @guid, @viewcount, @viewdate);
SELECT idx, gcode, pdate, title, uid, description2, share, wuid, wdate, description, guid, viewcount, viewdate FROM EETGW_Note WITH (nolock) WHERE (idx = SCOPE_IDENTITY()) ORDER BY pdate DESC</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@description2" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="description2" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@share" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@description" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="description" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@guid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@viewdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT idx, gcode, pdate, title, uid, description2, share, wuid, wdate, description, guid, viewcount, viewdate
FROM EETGW_Note WITH (nolock)
WHERE (gcode = @gcode) AND (pdate BETWEEN @sd AND @ed) AND (uid = @uid) OR
(gcode = @gcode) AND (pdate BETWEEN @sd AND @ed) AND (ISNULL(share, 0) = 1)
ORDER BY pdate DESC</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.EETGW_Note" 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="sd" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@sd" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="ed" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@ed" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="uid" ColumnName="uid" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [EETGW_Note] SET [gcode] = @gcode, [pdate] = @pdate, [title] = @title, [uid] = @uid, [description2] = @description2, [share] = @share, [wuid] = @wuid, [wdate] = @wdate, [description] = @description, [guid] = @guid, [viewcount] = @viewcount, [viewdate] = @viewdate WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_pdate = 1 AND [pdate] IS NULL) OR ([pdate] = @Original_pdate)) AND ((@IsNull_title = 1 AND [title] IS NULL) OR ([title] = @Original_title)) AND ((@IsNull_uid = 1 AND [uid] IS NULL) OR ([uid] = @Original_uid)) AND ((@IsNull_share = 1 AND [share] IS NULL) OR ([share] = @Original_share)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate) AND ((@IsNull_guid = 1 AND [guid] IS NULL) OR ([guid] = @Original_guid)) AND ((@IsNull_viewcount = 1 AND [viewcount] IS NULL) OR ([viewcount] = @Original_viewcount)) AND ((@IsNull_viewdate = 1 AND [viewdate] IS NULL) OR ([viewdate] = @Original_viewdate)));
SELECT idx, gcode, pdate, title, uid, description2, share, wuid, wdate, description, guid, viewcount, viewdate FROM EETGW_Note WITH (nolock) WHERE (idx = @idx) ORDER BY pdate DESC</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@description2" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="description2" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@share" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@description" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="description" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@guid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@viewdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_pdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_title" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_title" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="title" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_uid" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_uid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_share" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_share" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="share" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_guid" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_guid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="guid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_viewcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewcount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_viewdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_viewdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="viewdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="idx" DataSetColumn="idx" />
<Mapping SourceColumn="gcode" DataSetColumn="gcode" />
<Mapping SourceColumn="pdate" DataSetColumn="pdate" />
<Mapping SourceColumn="title" DataSetColumn="title" />
<Mapping SourceColumn="uid" DataSetColumn="uid" />
<Mapping SourceColumn="description2" DataSetColumn="description2" />
<Mapping SourceColumn="share" DataSetColumn="share" />
<Mapping SourceColumn="wuid" DataSetColumn="wuid" />
<Mapping SourceColumn="wdate" DataSetColumn="wdate" />
<Mapping SourceColumn="description" DataSetColumn="description" />
<Mapping SourceColumn="guid" DataSetColumn="guid" />
<Mapping SourceColumn="viewcount" DataSetColumn="viewcount" />
<Mapping SourceColumn="viewdate" DataSetColumn="viewdate" />
</Mappings>
<Sources>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_Note" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillByIdx" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetbyIdx" GeneratorSourceName="FillByIdx" GetMethodModifier="Public" GetMethodName="GetbyIdx" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetbyIdx" UserSourceName="FillByIdx">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT description, description2, gcode, guid, idx, pdate, share, title, uid, viewcount, viewdate, wdate, wuid FROM EETGW_Note WITH (nolock) WHERE (idx = @idx)</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_Note" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillByNoDesc" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetByNoDesc" GeneratorSourceName="FillByNoDesc" GetMethodModifier="Public" GetMethodName="GetByNoDesc" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetByNoDesc" UserSourceName="FillByNoDesc">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT gcode, guid, idx, pdate, share, title, uid, viewcount, viewdate, wdate, wuid FROM EETGW_Note WITH (nolock) WHERE (gcode = @gcode) AND (pdate BETWEEN @sd AND @ed) AND (uid = @uid) OR (gcode = @gcode) AND (pdate BETWEEN @sd AND @ed) AND (ISNULL(share, 0) = 1) ORDER BY pdate DESC</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.EETGW_Note" 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="sd" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@sd" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="ed" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@ed" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="uid" ColumnName="uid" DataSourceName="EE.dbo.EETGW_Note" DataTypeServer="varchar(20)" DbType="AnsiString" Direction="Input" ParameterName="@uid" Precision="0" ProviderType="VarChar" Scale="0" Size="20" SourceColumn="uid" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</Sources>
</TableAdapter>
</Tables>
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DSNote" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DSNote" msprop:Generator_UserDSName="DSNote">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="EETGW_Note" msprop:Generator_UserTableName="EETGW_Note" msprop:Generator_RowEvArgName="EETGW_NoteRowChangeEvent" msprop:Generator_TableVarName="tableEETGW_Note" msprop:Generator_TablePropName="EETGW_Note" msprop:Generator_RowDeletingName="EETGW_NoteRowDeleting" msprop:Generator_RowChangingName="EETGW_NoteRowChanging" msprop:Generator_RowEvHandlerName="EETGW_NoteRowChangeEventHandler" msprop:Generator_RowDeletedName="EETGW_NoteRowDeleted" msprop:Generator_TableClassName="EETGW_NoteDataTable" msprop:Generator_RowChangedName="EETGW_NoteRowChanged" msprop:Generator_RowClassName="EETGW_NoteRow">
<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="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="pdate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="pdate" msprop:Generator_ColumnVarNameInTable="columnpdate" 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="title" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="title" msprop:Generator_ColumnVarNameInTable="columntitle" msprop:Generator_ColumnPropNameInTable="titleColumn" msprop:Generator_UserColumnName="title" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="uid" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="uid" msprop:Generator_ColumnVarNameInTable="columnuid" msprop:Generator_ColumnPropNameInTable="uidColumn" msprop:Generator_UserColumnName="uid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="description2" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="description2" msprop:Generator_ColumnVarNameInTable="columndescription2" msprop:Generator_ColumnPropNameInTable="description2Column" msprop:Generator_UserColumnName="description2" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="share" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="share" msprop:Generator_ColumnVarNameInTable="columnshare" msprop:Generator_ColumnPropNameInTable="shareColumn" msprop:Generator_UserColumnName="share" type="xs:boolean" minOccurs="0" />
<xs:element name="wuid" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
<xs:element name="description" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="description" msprop:Generator_ColumnVarNameInTable="columndescription" msprop:Generator_ColumnPropNameInTable="descriptionColumn" msprop:Generator_UserColumnName="description" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="guid" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="guid" msprop:Generator_ColumnVarNameInTable="columnguid" msprop:Generator_ColumnPropNameInTable="guidColumn" msprop:Generator_UserColumnName="guid" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="viewcount" msprop:Generator_ColumnVarNameInTable="columnviewcount" msprop:Generator_ColumnPropNameInRow="viewcount" msprop:Generator_ColumnPropNameInTable="viewcountColumn" msprop:Generator_UserColumnName="viewcount" type="xs:int" minOccurs="0" />
<xs:element name="viewdate" msprop:Generator_ColumnVarNameInTable="columnviewdate" msprop:Generator_ColumnPropNameInRow="viewdate" msprop:Generator_ColumnPropNameInTable="viewdateColumn" msprop:Generator_UserColumnName="viewdate" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:EETGW_Note" />
<xs:field xpath="mstns:idx" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -1,12 +0,0 @@
<?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="115" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:EETGW_Note" ZOrder="1" X="260" Y="172" Height="324" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -154,11 +154,6 @@
<DesignTime>True</DesignTime>
<DependentUpon>dsMail.xsd</DependentUpon>
</Compile>
<Compile Include="DSNote.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSNote.xsd</DependentUpon>
</Compile>
<Compile Include="dsPRJ.cs">
<DependentUpon>dsPRJ.xsd</DependentUpon>
</Compile>
@@ -257,6 +252,12 @@
<Compile Include="JobReport_\rJobReportOT.Designer.cs">
<DependentUpon>rJobReportOT.cs</DependentUpon>
</Compile>
<Compile Include="Note\fTextEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Note\fTextEditor.Designer.cs">
<DependentUpon>fTextEditor.cs</DependentUpon>
</Compile>
<Compile Include="OtConfirm\fHolyRequest.cs">
<SubType>Form</SubType>
</Compile>
@@ -323,12 +324,6 @@
<Compile Include="JobReport_\rJobReportUser.Designer.cs">
<DependentUpon>rJobReportUser.cs</DependentUpon>
</Compile>
<Compile Include="Note\fNote.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Note\fNote.Designer.cs">
<DependentUpon>fNote.cs</DependentUpon>
</Compile>
<Compile Include="OtConfirm\fOTConfirmValue.cs">
<SubType>Form</SubType>
</Compile>
@@ -406,36 +401,6 @@
<Compile Include="Project\fProjectPartListEdit.Designer.cs">
<DependentUpon>fProjectPartListEdit.cs</DependentUpon>
</Compile>
<Compile Include="SaveCost\fSaveCostReport.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SaveCost\fSaveCostReport.Designer.cs">
<DependentUpon>fSaveCostReport.cs</DependentUpon>
</Compile>
<Compile Include="SaveCost\fSaveCostData.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SaveCost\fSaveCostData.Designer.cs">
<DependentUpon>fSaveCostData.cs</DependentUpon>
</Compile>
<Compile Include="SaveCost\fSaveCostList.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SaveCost\fSaveCostList.Designer.cs">
<DependentUpon>fSaveCostList.cs</DependentUpon>
</Compile>
<Compile Include="Note\fTextEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Note\fTextEditor.Designer.cs">
<DependentUpon>fTextEditor.cs</DependentUpon>
</Compile>
<Compile Include="Note\fNote_Add.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Note\fNote_Add.Designer.cs">
<DependentUpon>fNote_Add.cs</DependentUpon>
</Compile>
<Compile Include="Project\fPartList.cs">
<SubType>Form</SubType>
</Compile>
@@ -579,6 +544,9 @@
<EmbeddedResource Include="JobReport_\rJobReportOT.resx">
<DependentUpon>rJobReportOT.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Note\fTextEditor.resx">
<DependentUpon>fTextEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="OtConfirm\fHolyRequest.resx">
<DependentUpon>fHolyRequest.cs</DependentUpon>
</EmbeddedResource>
@@ -616,9 +584,6 @@
<EmbeddedResource Include="JobReport_\rJobReportUser.resx">
<DependentUpon>rJobReportUser.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Note\fNote.resx">
<DependentUpon>fNote.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="OtConfirm\fOTConfirmValue.resx">
<DependentUpon>fOTConfirmValue.cs</DependentUpon>
</EmbeddedResource>
@@ -652,21 +617,6 @@
<EmbeddedResource Include="Project\fProjectPartListEdit.resx">
<DependentUpon>fProjectPartListEdit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SaveCost\fSaveCostReport.resx">
<DependentUpon>fSaveCostReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SaveCost\fSaveCostData.resx">
<DependentUpon>fSaveCostData.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SaveCost\fSaveCostList.resx">
<DependentUpon>fSaveCostList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Note\fTextEditor.resx">
<DependentUpon>fTextEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Note\fNote_Add.resx">
<DependentUpon>fNote_Add.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Project\fPartList.resx">
<DependentUpon>fPartList.cs</DependentUpon>
</EmbeddedResource>
@@ -780,17 +730,6 @@
<None Include="dsMail.xss">
<DependentUpon>dsMail.xsd</DependentUpon>
</None>
<None Include="DSNote.xsc">
<DependentUpon>DSNote.xsd</DependentUpon>
</None>
<None Include="DSNote.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSNote.Designer.cs</LastGenOutput>
</None>
<None Include="DSNote.xss">
<DependentUpon>DSNote.xsd</DependentUpon>
</None>
<None Include="dsPRJ.xsc">
<DependentUpon>dsPRJ.xsd</DependentUpon>
</None>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>

View File

@@ -609,7 +609,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = this.ta;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -680,7 +680,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = this.ta;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -323,7 +323,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = this.ta;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -1,597 +0,0 @@
namespace FPJ0000.Note
{
partial class fNote
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fNote));
FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType1 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.CheckBoxCellType checkBoxCellType1 = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType2 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType3 = new FarPoint.Win.Spread.CellType.TextCellType();
FarPoint.Win.Spread.CellType.TextCellType textCellType4 = new FarPoint.Win.Spread.CellType.TextCellType();
this.bn = new System.Windows.Forms.BindingNavigator(this.components);
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.ds1 = new FPJ0000.DSNote();
this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.btAdd = new System.Windows.Forms.ToolStripButton();
this.btCopy = new System.Windows.Forms.ToolStripButton();
this.btEdit = new System.Windows.Forms.ToolStripButton();
this.btDel = new System.Windows.Forms.ToolStripButton();
this.btSave = new System.Windows.Forms.ToolStripButton();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
this.tbFind = new System.Windows.Forms.ToolStripTextBox();
this.btFind = new System.Windows.Forms.ToolStripButton();
this.cm = new System.Windows.Forms.ContextMenuStrip(this.components);
this.columnSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.lbStt = new System.Windows.Forms.ToolStripLabel();
this.dtSD = new System.Windows.Forms.ToolStripTextBox();
this.lbEnd = new System.Windows.Forms.ToolStripLabel();
this.dtED = new System.Windows.Forms.ToolStripTextBox();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.btSearch = new System.Windows.Forms.ToolStripButton();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.ta = new FPJ0000.DSNoteTableAdapters.EETGW_NoteTableAdapter();
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit();
this.cm.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit();
this.toolStrip1.SuspendLayout();
this.SuspendLayout();
//
// bn
//
this.bn.AddNewItem = null;
this.bn.BindingSource = this.bs;
this.bn.CountItem = this.bindingNavigatorCountItem;
this.bn.DeleteItem = null;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.bindingNavigatorMoveFirstItem,
this.bindingNavigatorMovePreviousItem,
this.bindingNavigatorSeparator,
this.bindingNavigatorPositionItem,
this.bindingNavigatorCountItem,
this.bindingNavigatorSeparator1,
this.bindingNavigatorMoveNextItem,
this.bindingNavigatorMoveLastItem,
this.bindingNavigatorSeparator2,
this.btAdd,
this.btCopy,
this.btEdit,
this.btDel,
this.btSave,
this.toolStripButton1,
this.toolStripSeparator1,
this.toolStripLabel2,
this.tbFind,
this.btFind});
this.bn.Location = new System.Drawing.Point(0, 595);
this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.bindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(969, 25);
this.bn.TabIndex = 0;
this.bn.Text = "bindingNavigator1";
//
// bs
//
this.bs.DataMember = "EETGW_Note";
this.bs.DataSource = this.ds1;
this.bs.Sort = "pdate desc";
this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged);
//
// ds1
//
this.ds1.DataSetName = "dsMSSQL";
this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// bindingNavigatorCountItem
//
this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22);
this.bindingNavigatorCountItem.Text = "/{0}";
this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수";
//
// bindingNavigatorMoveFirstItem
//
this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image")));
this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem";
this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동";
//
// bindingNavigatorMovePreviousItem
//
this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image")));
this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem";
this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동";
//
// bindingNavigatorSeparator
//
this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator";
this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25);
//
// bindingNavigatorPositionItem
//
this.bindingNavigatorPositionItem.AccessibleName = "위치";
this.bindingNavigatorPositionItem.AutoSize = false;
this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem";
this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23);
this.bindingNavigatorPositionItem.Text = "0";
this.bindingNavigatorPositionItem.ToolTipText = "현재 위치";
//
// bindingNavigatorSeparator1
//
this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1";
this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25);
//
// bindingNavigatorMoveNextItem
//
this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image")));
this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem";
this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveNextItem.Text = "다음으로 이동";
//
// bindingNavigatorMoveLastItem
//
this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image")));
this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem";
this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;
this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22);
this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동";
//
// bindingNavigatorSeparator2
//
this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2";
this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25);
//
// btAdd
//
this.btAdd.Image = ((System.Drawing.Image)(resources.GetObject("btAdd.Image")));
this.btAdd.Name = "btAdd";
this.btAdd.RightToLeftAutoMirrorImage = true;
this.btAdd.Size = new System.Drawing.Size(67, 22);
this.btAdd.Text = "추가(&A)";
this.btAdd.Click += new System.EventHandler(this.bindingNavigatorAddNewItem_Click);
//
// btCopy
//
this.btCopy.Image = global::FPJ0000.Properties.Resources.copy;
this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btCopy.Name = "btCopy";
this.btCopy.Size = new System.Drawing.Size(67, 22);
this.btCopy.Text = "복사(&C)";
this.btCopy.Visible = false;
this.btCopy.Click += new System.EventHandler(this.btCopy_Click);
//
// btEdit
//
this.btEdit.Image = ((System.Drawing.Image)(resources.GetObject("btEdit.Image")));
this.btEdit.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btEdit.Name = "btEdit";
this.btEdit.Size = new System.Drawing.Size(65, 22);
this.btEdit.Text = "편집(&E)";
this.btEdit.Click += new System.EventHandler(this.btEdit_Click);
//
// btDel
//
this.btDel.Image = ((System.Drawing.Image)(resources.GetObject("btDel.Image")));
this.btDel.Name = "btDel";
this.btDel.RightToLeftAutoMirrorImage = true;
this.btDel.Size = new System.Drawing.Size(68, 22);
this.btDel.Text = "삭제(&D)";
this.btDel.Click += new System.EventHandler(this.btDel_Click);
//
// btSave
//
this.btSave.Image = global::FPJ0000.Properties.Resources.action_save;
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(66, 22);
this.btSave.Text = "저장(&S)";
this.btSave.Click += new System.EventHandler(this.projectsBindingNavigatorSaveItem_Click);
//
// toolStripButton1
//
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(75, 22);
this.toolStripButton1.Text = "폴더열기";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click_1);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// toolStripLabel2
//
this.toolStripLabel2.Name = "toolStripLabel2";
this.toolStripLabel2.Size = new System.Drawing.Size(31, 22);
this.toolStripLabel2.Text = "검색";
//
// tbFind
//
this.tbFind.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbFind.Name = "tbFind";
this.tbFind.Size = new System.Drawing.Size(100, 25);
this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbFind_KeyDown);
//
// btFind
//
this.btFind.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.btFind.Image = ((System.Drawing.Image)(resources.GetObject("btFind.Image")));
this.btFind.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btFind.Name = "btFind";
this.btFind.Size = new System.Drawing.Size(23, 22);
this.btFind.Text = "toolStripButton2";
this.btFind.Click += new System.EventHandler(this.btFind_Click);
//
// cm
//
this.cm.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.cm.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.columnSizeToolStripMenuItem,
this.exportListToolStripMenuItem,
this.toolStripMenuItem2,
this.ToolStripMenuItem,
this.ToolStripMenuItem,
this.ToolStripMenuItem});
this.cm.Name = "contextMenuStrip1";
this.cm.Size = new System.Drawing.Size(226, 190);
//
// columnSizeToolStripMenuItem
//
this.columnSizeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.autoToolStripMenuItem,
this.resetToolStripMenuItem,
this.saveToolStripMenuItem,
this.loadToolStripMenuItem});
this.columnSizeToolStripMenuItem.Name = "columnSizeToolStripMenuItem";
this.columnSizeToolStripMenuItem.Size = new System.Drawing.Size(225, 36);
this.columnSizeToolStripMenuItem.Text = "Column Size";
//
// autoToolStripMenuItem
//
this.autoToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("autoToolStripMenuItem.Image")));
this.autoToolStripMenuItem.Name = "autoToolStripMenuItem";
this.autoToolStripMenuItem.Size = new System.Drawing.Size(149, 36);
this.autoToolStripMenuItem.Text = "Auto";
this.autoToolStripMenuItem.Click += new System.EventHandler(this.autoToolStripMenuItem_Click);
//
// resetToolStripMenuItem
//
this.resetToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("resetToolStripMenuItem.Image")));
this.resetToolStripMenuItem.Name = "resetToolStripMenuItem";
this.resetToolStripMenuItem.Size = new System.Drawing.Size(149, 36);
this.resetToolStripMenuItem.Text = "Reset";
this.resetToolStripMenuItem.Click += new System.EventHandler(this.resetToolStripMenuItem_Click);
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem.Image")));
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.Size = new System.Drawing.Size(149, 36);
this.saveToolStripMenuItem.Text = "Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// loadToolStripMenuItem
//
this.loadToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("loadToolStripMenuItem.Image")));
this.loadToolStripMenuItem.Name = "loadToolStripMenuItem";
this.loadToolStripMenuItem.Size = new System.Drawing.Size(149, 36);
this.loadToolStripMenuItem.Text = "Load";
this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click);
//
// exportListToolStripMenuItem
//
this.exportListToolStripMenuItem.Name = "exportListToolStripMenuItem";
this.exportListToolStripMenuItem.Size = new System.Drawing.Size(225, 36);
this.exportListToolStripMenuItem.Text = "Export List";
this.exportListToolStripMenuItem.Click += new System.EventHandler(this.exportListToolStripMenuItem_Click);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(222, 6);
//
// 복사ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "복사ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(225, 36);
this.ToolStripMenuItem.Text = "복사";
this.ToolStripMenuItem.Visible = false;
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 편집ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "편집ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(225, 36);
this.ToolStripMenuItem.Text = "편집";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// 삭제ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "삭제ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(225, 36);
this.ToolStripMenuItem.Text = "삭제";
this.ToolStripMenuItem.Click += new System.EventHandler(this.ToolStripMenuItem_Click);
//
// fpSpread1
//
this.fpSpread1.AccessibleDescription = "";
this.fpSpread1.ContextMenuStrip = this.cm;
this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill;
this.fpSpread1.Location = new System.Drawing.Point(0, 37);
this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(969, 558);
this.fpSpread1.TabIndex = 2;
//
// fpSpread1_Sheet1
//
this.fpSpread1_Sheet1.Reset();
this.fpSpread1_Sheet1.SheetName = "Sheet1";
// Formulas and custom names must be loaded with R1C1 reference style
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1;
this.fpSpread1_Sheet1.ColumnCount = 6;
this.fpSpread1_Sheet1.ActiveColumnIndex = -1;
this.fpSpread1_Sheet1.ActiveRowIndex = -1;
this.fpSpread1_Sheet1.AutoGenerateColumns = false;
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 2).Value = "공유";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 3).Value = "등록일";
this.fpSpread1_Sheet1.ColumnHeader.Cells.Get(0, 4).Value = "제목";
this.fpSpread1_Sheet1.ColumnHeader.Rows.Get(0).Height = 28F;
numberCellType1.DecimalPlaces = 0;
numberCellType1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.Yes;
numberCellType1.MaximumValue = 2147483647D;
numberCellType1.MinimumValue = -2147483648D;
this.fpSpread1_Sheet1.Columns.Get(0).CellType = numberCellType1;
this.fpSpread1_Sheet1.Columns.Get(0).DataField = "idx";
this.fpSpread1_Sheet1.Columns.Get(0).Visible = false;
this.fpSpread1_Sheet1.Columns.Get(0).Width = 77F;
this.fpSpread1_Sheet1.Columns.Get(1).CellType = textCellType1;
this.fpSpread1_Sheet1.Columns.Get(1).DataField = "gcode";
this.fpSpread1_Sheet1.Columns.Get(1).Visible = false;
this.fpSpread1_Sheet1.Columns.Get(1).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(2).CellType = checkBoxCellType1;
this.fpSpread1_Sheet1.Columns.Get(2).DataField = "share";
this.fpSpread1_Sheet1.Columns.Get(2).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(2).Label = "공유";
this.fpSpread1_Sheet1.Columns.Get(2).Tag = "share";
this.fpSpread1_Sheet1.Columns.Get(2).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(3).CellType = textCellType2;
this.fpSpread1_Sheet1.Columns.Get(3).DataField = "pdate";
this.fpSpread1_Sheet1.Columns.Get(3).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(3).Label = "등록일";
this.fpSpread1_Sheet1.Columns.Get(3).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(3).Width = 151F;
this.fpSpread1_Sheet1.Columns.Get(4).CellType = textCellType3;
this.fpSpread1_Sheet1.Columns.Get(4).DataField = "title";
this.fpSpread1_Sheet1.Columns.Get(4).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;
this.fpSpread1_Sheet1.Columns.Get(4).Label = "제목";
this.fpSpread1_Sheet1.Columns.Get(4).VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
this.fpSpread1_Sheet1.Columns.Get(4).Width = 255F;
this.fpSpread1_Sheet1.Columns.Get(5).CellType = textCellType4;
this.fpSpread1_Sheet1.Columns.Get(5).DataField = "description2";
this.fpSpread1_Sheet1.Columns.Get(5).Visible = false;
this.fpSpread1_Sheet1.Columns.Get(5).Width = 151F;
this.fpSpread1_Sheet1.DataAutoSizeColumns = false;
this.fpSpread1_Sheet1.DataSource = this.bs;
this.fpSpread1_Sheet1.RowHeader.Columns.Default.Resizable = false;
this.fpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1;
//
// toolStrip1
//
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(30, 30);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.lbStt,
this.dtSD,
this.lbEnd,
this.dtED,
this.toolStripSeparator2,
this.btSearch,
this.toolStripButton2});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(969, 37);
this.toolStrip1.TabIndex = 4;
this.toolStrip1.Text = "toolStrip1";
//
// lbStt
//
this.lbStt.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbStt.ForeColor = System.Drawing.Color.Blue;
this.lbStt.Name = "lbStt";
this.lbStt.Size = new System.Drawing.Size(31, 34);
this.lbStt.Text = "기간";
this.lbStt.Click += new System.EventHandler(this.lbStt_Click);
//
// dtSD
//
this.dtSD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dtSD.Name = "dtSD";
this.dtSD.Size = new System.Drawing.Size(90, 37);
this.dtSD.Text = "1982-11-23";
this.dtSD.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lbEnd
//
this.lbEnd.Name = "lbEnd";
this.lbEnd.Size = new System.Drawing.Size(15, 34);
this.lbEnd.Text = "~";
//
// dtED
//
this.dtED.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.dtED.Name = "dtED";
this.dtED.Size = new System.Drawing.Size(90, 37);
this.dtED.Text = "1982-11-23";
this.dtED.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 37);
//
// btSearch
//
this.btSearch.Image = ((System.Drawing.Image)(resources.GetObject("btSearch.Image")));
this.btSearch.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btSearch.Name = "btSearch";
this.btSearch.Size = new System.Drawing.Size(80, 34);
this.btSearch.Text = "조회(&R)";
this.btSearch.Click += new System.EventHandler(this.btSearch_Click);
//
// toolStripButton2
//
this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton2.Name = "toolStripButton2";
this.toolStripButton2.Size = new System.Drawing.Size(65, 34);
this.toolStripButton2.Text = "닫기";
this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
//
// ta
//
this.ta.ClearBeforeFill = true;
//
// fNote
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(969, 620);
this.Controls.Add(this.fpSpread1);
this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.bn);
this.Name = "fNote";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "메모장";
this.Load += new System.EventHandler(this.@__Load);
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit();
this.cm.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit();
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private DSNote ds1;
private System.Windows.Forms.BindingSource bs;
private System.Windows.Forms.BindingNavigator bn;
private System.Windows.Forms.ToolStripButton btAdd;
private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
private System.Windows.Forms.ToolStripButton btDel;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
private System.Windows.Forms.ToolStripButton btSave;
private System.Windows.Forms.ContextMenuStrip cm;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private FarPoint.Win.Spread.FpSpread fpSpread1;
private System.Windows.Forms.ToolStripMenuItem columnSizeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem autoToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem resetToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2;
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripLabel lbStt;
private System.Windows.Forms.ToolStripTextBox dtSD;
private System.Windows.Forms.ToolStripLabel lbEnd;
private System.Windows.Forms.ToolStripTextBox dtED;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripButton btSearch;
private System.Windows.Forms.ToolStripButton btCopy;
private System.Windows.Forms.ToolStripButton btEdit;
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
private System.Windows.Forms.ToolStripTextBox tbFind;
private System.Windows.Forms.ToolStripButton btFind;
private System.Windows.Forms.ToolStripMenuItem exportListToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem;
private System.Windows.Forms.ToolStripButton toolStripButton2;
private DSNoteTableAdapters.EETGW_NoteTableAdapter ta;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
private System.Windows.Forms.ToolStripButton toolStripButton1;
}
}

View File

@@ -1,456 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using util = FCOMMON.Util;
namespace FPJ0000.Note
{
public partial class fNote : FCOMMON.fBase
{
string fn_fpcolsize = "";
public fNote()
{
InitializeComponent();
fn_fpcolsize = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
this.ds1.EETGW_Note.TableNewRow += Projects_TableNewRow;
this.FormClosed += __Closed;
dtSD.KeyDown += dtSD_KeyDown;
dtED.KeyDown += dtSD_KeyDown;
}
void __Closed(object sender, FormClosedEventArgs e)
{
}
Boolean binit = false;
private void __Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
this.dtSD.Text = DateTime.Now.AddYears(-10).ToString("yyyy-MM-01");
this.dtED.Text = DateTime.Now.ToShortDateString();
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.jobreport));
if (curLevel >= 5)
{
btSave.Visible = true;
}
else
{
btSave.Visible = false;
//btViewDel.Visible = false;
fpSpread1.EditMode = false;
fpSpread1.Sheets[0].SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row;
fpSpread1.EditModePermanent = false;
fpSpread1.EditModeReplace = false;
foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns)
col.Locked = true;
}
refreshData();
binit = true;
}
private void cmbProcess_SelectedIndexChanged(object sender, EventArgs e)
{
if (binit == false) return;
}
private void cmbProcess_Click(object sender, EventArgs e)
{
}
void dtSD_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter) return;
var tb = sender as ToolStripTextBox;
var input = tb.Text.Trim();
if (input == "") tb.Text = DateTime.Now.ToShortDateString();
else
{
string dt = string.Empty;
if (!util.MakeDateString(input, out dt))
{
FCOMMON.Util.MsgE("입력값이 올바르지 않습니다.");
tb.SelectAll();
tb.Focus();
return;
}
else
{
tb.Text = dt;
}
}
if (tb == dtSD)
{
dtED.Focus();
dtED.SelectAll();
}
else
{
btSearch.PerformClick();
tb.SelectAll();
}
}
void refreshData()
{
// string state = "%";
// if (cmbState.SelectedIndex > 0) state = cmbState.Text.Split(',')[0].Substring(1);
//var cmd = new System.Data.SqlClient.SqlCommand("select idx,gcode,pdate,uid,'' as description,'' as description2,share,wuid,wdate from eetgw_note where gcode = @gcode and pdate between @sd and @ed and (uid=@uid or isnull(share,0) = 1)",ta.Connection);
//cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = FCOMMON.info.Login.gcode;
//cmd.Parameters.Add("sd", SqlDbType.VarChar).Value = dtSD.Text;
//cmd.Parameters.Add("ed", SqlDbType.VarChar).Value = dtED.Text;
//cmd.Parameters.Add("uid", SqlDbType.VarChar).Value = FCOMMON.info.Login.no;
//var da = new System.Data.SqlClient.SqlDataAdapter(cmd);
//da.Fill(this.ds1.EETGW_Note);
//cmd.Dispose();
//da.Dispose();
//설명을 가져오지 않는다.
this.ta.FillByNoDesc(this.ds1.EETGW_Note, FCOMMON.info.Login.gcode, dtSD.Text, dtED.Text, FCOMMON.info.Login.no);
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
FormattingData();
}
void FormattingData()
{
//삭제컬럼인덱스
this.fpSpread1.SuspendLayout();
var delindex = this.fpSpread1.ActiveSheet.Columns["share"].Index;
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
{
var state = this.fpSpread1.ActiveSheet.GetValue(i, delindex);
var stateStr = false;
if (state != null) stateStr = (bool)state;
if (stateStr == true)
this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.WhiteSmoke;
else
this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.SkyBlue;
}
this.fpSpread1.ResumeLayout();
}
void funcSave()
{
this.Validate();
this.bs.EndEdit();
try
{
this.ta.Update(ds1.EETGW_Note);
FormattingData();
}
catch (Exception ex)
{
FCOMMON.Util.MsgE("저장 실패\n" + ex.Message);
}
}
private void projectsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
funcSave();
}
void Projects_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["gcode"] = FCOMMON.info.Login.gcode;
e.Row["pdate"] = DateTime.Now.ToShortDateString();
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["uid"] = FCOMMON.info.Login.no; //이름을 직접 기록
}
private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
{
refreshData();
}
private void partListToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectsRow;
var f = new fPartList(dr.idx);
f.MdiParent = this.MdiParent;
f.Show();
}
private void autoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
this.fpSpread1.ActiveSheet.SetRowHeight(i, 25);
//dv1.AutoResizeColumns();
}
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
{
col.Width = 100;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColsizeSave(this.fpSpread1, fn_fpcolsize);
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
private void btSearch_Click(object sender, EventArgs e)
{
refreshData();
}
private void toolStripLabel3_Click(object sender, EventArgs e)
{
//사용자목록처리
var namestr = string.Format("{0}({1})", FCOMMON.info.Login.nameK, FCOMMON.info.Login.no); ;
if (FCOMMON.info.Login.no == "dev") namestr = "김치균(395552)";
refreshData();
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
var f = new Note.fNote_Add(-1);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
refreshData();
}
}
private void btFind_Click(object sender, EventArgs e)
{
var search = tbFind.Text.Trim();
search = search.Replace("*", "x");
if (tbFind.Text != search) tbFind.Text = search;
try
{
if (search.Trim() == "")
{
this.bs.Filter = "";
tbFind.BackColor = Color.White;
}
else
{
search = search.Replace("'", "''");
var collist = new string[] { "description" };
string filter = ""; // "itemna like ? or package like ? or projectname like ? or process like ? or [type] like ? or description like ?";
foreach (var col in collist)
{
if (filter != "") filter += " or ";
filter += col + " like ?";
}
filter = filter.Replace("?", "'%" + search + "%'");
this.bs.Filter = filter;
tbFind.BackColor = Color.Lime;
}
tbFind.SelectAll();
tbFind.Focus();
}
catch (Exception ex)
{
this.tbFind.BackColor = Color.Tomato;
FCOMMON.Util.MsgE(ex.Message);
}
}
private void tbFind_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) btFind.PerformClick();
}
private void btEdit_Click(object sender, EventArgs e)
{
funcEdit();
}
void funcEdit()
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSNote.EETGW_NoteRow;
//if(dr.uid != FCOMMON.info.Login.no && FCOMMON.info.Login.level<5)
//{
// FCOMMON.Util.MsgE("타인의 자료는 추가/변경/삭제 할 수 없습니다.");
// return;
//}
var f = new Note.fNote_Add(dr.idx);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
refreshData();
}
}
private void exportListToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "excel|*.xls";
sd.FileName = "jobreport.xls";
if (sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
fpSpread1.SaveExcel(sd.FileName,
FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
| FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered
| FarPoint.Excel.ExcelSaveFlags.NoFormulas
| FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
FCOMMON.Util.MsgI("다음 파일이 생성 되었습니다.\n\n" + sd.FileName);
}
}
private void btCopy_Click(object sender, EventArgs e)
{
// funcCopy(); //190509
}
//void funcCopy()
//{
// var drv = this.bs.Current as DataRowView;
// if (drv == null) return;
// var dr = drv.Row as dsPRJ.JobReportRow;
// //현재 데이터를 입력하여 신규 추가를 한다.
// var newdr = this.ds1.JobReport.NewJobReportRow();
// FCOMMON.Util.CopyData((System.Data.DataRow)dr, (System.Data.DataRow)newdr);
// newdr.wdate = DateTime.Now;
// newdr.wuid = FCOMMON.info.Login.no;
// newdr.uid = FCOMMON.info.Login.no;
// //newdr.description = "";
// newdr.pdate = DateTime.Now.ToShortDateString(); //190509
// newdr.idx = -1;
// newdr.hrs = 8.0;
// newdr.ot = 0.0;
// newdr.EndEdit();
// //var newdr = this.dsMSSQL.JobReport.NewJobReportRow();
// JobReport.fJobReport_Add f = new JobReport.fJobReport_Add(newdr);
// if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
// {
// this.ds1.JobReport.AddJobReportRow(newdr);
// this.ta.Update(newdr);
// newdr.AcceptChanges();
// }
// else newdr.Delete();
//}
private void btDel_Click(object sender, EventArgs e)
{
funcDelete();
}
void funcDelete()
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSNote.EETGW_NoteRow;
if (dr.uid != FCOMMON.info.Login.no && FCOMMON.info.Login.level < 5)
{
FCOMMON.Util.MsgE("타인의 자료는 추가/변경/삭제 할 수 없습니다.");
return;
}
var dlg = FCOMMON.Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?");
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
dr.Delete();
try
{
this.ta.Update(dr);
}
catch (Exception ex)
{
FCOMMON.Util.MsgE("삭제실패\n\n" + ex.Message);
}
}
private void lbStt_Click(object sender, EventArgs e)
{
var f = new FCOMMON.fSelectMonth();
if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
var sdDate = DateTime.Parse(DateTime.Now.ToString("yyyy-") + f.selectmon.ToString() + "-01");
dtSD.Text = sdDate.ToShortDateString();
dtED.Text = sdDate.AddMonths(1).AddDays(-1).ToShortDateString();
refreshData();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
//funcCopy();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
funcEdit();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
funcDelete();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
this.Close();
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSNote.EETGW_NoteRow;
//if (string.IsNullOrEmpty(dr.description2)) richTextBoxEx1.Text = dr.description;
//else richTextBoxEx1.Rtf = dr.description2;
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSNote.EETGW_NoteRow;
//var serverpath = Properties.Settings.Default.SharePath; // @"\\10.131.32.29\Data\Project";
//if (System.IO.Directory.Exists(serverpath) == false)
//{
// FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +
// serverpath);
// return;
//}
var datapath = FCOMMON.DBM.getCodeSvalue("55", "01");
var path = System.IO.Path.Combine(datapath,"Data","Note", dr.guid);
if (System.IO.Directory.Exists(path) == false)
{
try
{
System.IO.Directory.CreateDirectory(path);
}
catch (Exception eX)
{
FCOMMON.Util.MsgE("프로젝트 저장소 생성실패\n" + eX.Message);
return;
}
}
FCOMMON.Util.RunExplorer(path);
}
}
}

View File

@@ -1,303 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>152, 17</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>88, 17</value>
</metadata>
<metadata name="ds1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+
+8H/4IZrWOXAIGPK0/8L933Aqii+5+H/pfv///evvoAhBwcJPU/+T9vyHkNRRPt9sObMWf//e5WewG1A
ZNej/72rP6AoCm29B9bcuu7/f//Ov/9d8g/gNiCw+eH/uvnv4IqCW+7+X7T3//+Odf//Z8z5+d+u7ud/
+4ztuA3wqLr/P3/aGxRFdsW3/6fP+f3fv+vbf53Cd/8tEtbjNsC+9O7/7MmvMRTpp5z/b1L04r9K1qf/
xpHLcBtgkXfnf2r/a6yKDJJO/JdN+/pfN3gehhwcGGbd/h/W8hKnIv3Uy/81fKdhlQMDnbQb//2qH+JV
pOIxAaccg1Pulf8gBXgVDUoAAPB2wKtYlLYeAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33
wZozZ/3/71V6gjQDQlvvgTW3rvv/37/z73+X/APEGxDccvf/or3//3es+/8/Y87P/3Z1P//bZ2wn3gAQ
sCu+/T99zu///l3f/usUvvtvkbCeNANAQD/l/H+Tohf/VbI+/TeOXEa6ASBgkHTiv2za1/+6wfPIMwAE
9FMv/9fwnUa+ASCg4jGBMgMGLwAA0BRgmCws/7cAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5
8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu
I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+
X6Bjq5qXAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe
/w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/
/tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI
ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6
3AZY5N35b1NwBUMzTC61/zXcS1iBYdZtrJpBACQX1vLyv27wPKzyYKCTdgOnJEjOr/rhfw3faTjV4AVO
uVf+q3hMAGN0uYEFAL7Rv7NmXVYYAAAAAElFTkSuQmCC
</value>
</data>
<data name="btAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij
UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK
yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ
My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs
gRYWQPNO0NwkWNYGxg+DcYNgGSu2Z0xy4C7SiJtwE66kuq049xlAs2Ng/AiS7nbszXci6jIh4jQjPGWR
A+U59hiluowbQMzVVfmgPKU/GdcPxlmx5TArB6KzJunf0gTtPcqBzeluhCYsCIz3wm/rUw78WX4AJCPY
nlwVm9EAAAAASUVORK5CYII=
</value>
</data>
<data name="btEdit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEuSURBVDhPpZKxS0JBHMff1P/S2NbUIg7RqrQ0tDj5B9jU
nH+Ag9DSlOAQhNCi6BRBBD1SaDIDg4JCLVSqpz/5HJzdz3vp4MH3vcfdfT73e3cXyJot4NHs9qUSdkxK
t20p1lsmJxc3JkfFq3m2MwUTxucCQCTd96G8DcYq9NkAnoc/kiqPzLcSMPn6eeKl8TSRl8+pB6cyx38C
yv4afXvgfzBzlYD/cQXL4HZvulywCi49RL6AnabThWv5IBa2gt10Nl5gYQn3RaobCkZ4dh+ZE1ECzvdj
MPRgvhdhK0jsHfgC7sIq+PTuVzqvvXjB5WNkNsfNYa5gxgFtEOwk01rAHiAgdlXejCFxw2JKQCflI1m8
voQVbYC5uZtbCV2BLdctn50m/C9hVQKs7sE6bQYYdFQ/+SVRqQAAAABJRU5ErkJggg==
</value>
</data>
<data name="btDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC
DrhIDiQl5USy07zNa2tKf2laaRf84/J8xBCetab4XL/f76fn+SnKX4DrGLqrwbHDzywkWJlHdJYjLEbY
Wg8q4eYKlma+d1hbgF4TotWIaC+FuYmAktcXCksx2HrknBOHX1KbiTDngrXhW0kMdSBM2TA5Io+/wuI0
oiz5TcRwB7hPYazfLx3rDz7+gCsXNBb4v1SdgajTQ19TaOMP2NtFmPSIilSo0v1y7FHBnAdZMWi6aO51
kVCTGZoEzzWYciA/Dl9bBZwfvh3XmxIJy7PBJdx5odnAQ2E87qJUfPbtzwGjVpxJEWjH+4ElPD/BYBsY
EjhKicW3sSoVb0vSUFsq0W6upUxhdxMtOxZnYhhqVz1oj3JJUZSdpCg0p0POmLKhJofjNqaDeikX3tFG
uuHsQM65cML4ABzY5fA/eQGKIwMcVjm2bAAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<data name="btFind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEwSURBVDhPpZIxSwNBEIXzW/wLKS0Fm2ib5hBLBbESjG20
UUQsBRtbKzVgIWhhIwhWIhFBtFAjgqaIcKDmLiPfwO7NXg6NZuDdLnv3vn03uyX5R5VssdB8+ZC9q5Yc
XD7K7sW9bJ9eq1b3z1WLW4eBumkvgwDADKTVjuW1k41ubrV2/CbV+Y0sCRN25uXZQ9qnk7vEqx2nCggg
PIgdfyZ95jwEAOrEXyGA//0JYCGNm0QBk9HC74CdzRVZr82q6nORjoUAOs1i3owouk50BxkIwIekwsz4
/J7qSc1UymoMAJwtO9iOO4BTHjA2MRUCOHMLWJqu6BpgZ/4TgARArPlouSrR6EgxgJj2qBBNY0cnzI3a
uId4AJeiefukjbTXt6jyEJ8AiBMdtiKuk4V4wDD1Db5KUSxr13uqAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>218, 17</value>
</metadata>
<data name="autoToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJXG2JXa+ZLO5ChrlkCy4TZ1kiVvpCN0trvo9SN5xTd4lrfh7iR9zo3S+EGz7JDJ
4TaCromrvC9ymyV+0Dd3mTl1koe72YvN7LTj+9ne6N3g6v7+/0Cw2Stoh////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAInwA/CBzooaAHgQUHKvRQoUABCgUlHFT4IYMCBAsQIIBg
wcBEgh0WCBDAgcAFDAc+fvDQIUKHDgMeEHDQIIFKlgoMGgjQoAGDmwUOehhg4EACBhM+GlzKVOkEBgkO
GBggNOhCBhgCBPBYUEGHmwkCOCDwYMCAll8XHghwgQCHkQDSLjRgAcKDBwAAKNCwgaIHiR4oOKygkuDE
pRQTK6YYEAA7
</value>
</data>
<data name="resetToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfALnik2aXQv7+/dPut73llbfala3LmW6gSWqdQ2eYRGqaSLfck568iYrUQN7yzF6R
PLTXlYjUP8XwmYfQQLbYl4jRQGiaQsPumNbyu7nglNPzsLXYlf7+/lCHK////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIlgA/CBzooaAHgQUHEvSgIEAABQUfHFTIwQECDAMwYDhg
oENCgRw8dBgAAECFBgsweJxYsAODDjApTIhAwCMHkCItGOxwgUCGlQQTeAgJsyhQg0iTGvzQ0qhND0IX
dtBwQcJKDxZsIhQpIcIECkVffmwpYUGDCiUheBQg1cCBAgU2QFDg4KZCDxIZOoQ48S7LpQoDCx4cEAA7
</value>
</data>
<data name="saveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAJXD9Iasxm6MqnSn2lZtjVaRyEpXbYu767TX/2KZztvr/4Gy5KrT/3ut32+gzlFh
e+r0/0RNX9/u/9Ln+8Xg//n8/4e36CkxQz9GVkSCvKjL35/N/Je91K7T5bDS4////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIuQA/CBxIsKDACRwScggQwIGAhwIICBDYQcEEgwg+bNjw
QKCHCQgkQBgpQcKBCg0AEBCoAaRIkhIsVBigUiAHCgwkKNjJU8GAAx0/3NwIAMABCwsaDHCwIGgAChuK
HjiQdMDSAQYEPpWKtKqDBA6yfgiAwGhXpUsTJIgg0AGCo0nRfi1QgO0HAQyQNpCrtkAGDAIFbKi69GsC
un8FEohqdEFavxkyXAhMoPKDBwYMRIiAAcOFoAZDCwwIADs=
</value>
</data>
<data name="loadToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJfL/OTs9HWVsW6aUqnT+6bnZldwkYiux7TZ/O3z+UlVa/P2+ZfTW36wWJDLV4m7
69nn78bi/qjL3qDP+VJhe4rAVa7S40NLXJ3bYJrA1ikxQz5FVdDU22OPRf///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIwQA9CBxIcOCHgx4gWLAgIUOGAwcESBTgAaEFCAEGaBwQ
IGOABwYqerCQsYBJBho7JHgAUqCEDjAxYGBQgYHKBAsoCMzQIUIEmA6CdkCAIOfOBT5/MnBQYSgBozCj
SoVJ4KkCDx1MFhhKFEFVAhMCXM1aAANMoh2qTgh7AWvZmQ6igp0AIEDbDg0aLA06YC4AABA2eBjgYcHG
vmv/Akgg2IMBDgsSdJwcAEICDhoECjDAmQIFBQouXNiwQYPOgqgLBgQAOw==
</value>
</data>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>606, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>286, 17</value>
</metadata>
<data name="btSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEiSURBVDhPY2DAAf6jAXRxVNVIAKYga5bH/7TpTmAMYsNA
3EQb3Ab8+/fv/71PZ/5nzXX+f+3T7v+X320H0yCct8Dz/9rTM/8HtGvDDcPQDAIgBSCNOx9NBuOOiw7/
u644/N9+ZzLYIKwGwARAkvP2dIJpGN52Y/r/9gsO/zuu2P/f+3Qq3ACQhVhtz5jlBLcBJnb43Qyw5p0P
pmB3AcwV6TNcwBLIBmLDKAbAeWQAFAPQbUG2DeYimAsxnA4z4PLnDWD/Hv2AGl0gAAobZAOxGgDSCApt
UKiDQh/ZJbDYgQGcBoDiGxTvoPiHpYUt15Gj7y9uL4BSGijFbb81FYy33pgK1gxKyqAUiuJ0ZAAyAJbG
QQBXPkDXBwfoCuA60MRpAgDTfULg/+7qPQAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADiSURBVEhL7dVBCsIwEAXQnsq1a62ui6JLpeDSK3gF155B
1AOId1A8gSvxBiNTCcTJJM3E2i6SwN9MhnklDW2WRbvW2wu0EepW8PkBf02CE2xks9vD6f4y6jTYg720
riKCcVCvP4LxbOXEcQ97sNeGi+Bq4PwzMJ+UcLg+a3uON7NHDHODdZzu2dAgmAMQpzUXGgxTfFAsIJ+W
3uhPMAZxBaoH8EExjcPcheMSDOtHPSyWX0ftgwfB3EWitTpcDFNAf6d0z4WLYDqYu0i0x4aL4M4+mZhO
fhJNJsERw22EuvGsNycE2B33w41tAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>544, 17</value>
</metadata>
</root>

View File

@@ -1,260 +0,0 @@
namespace FPJ0000.Note
{
partial class fNote_Add
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.Label label4;
System.Windows.Forms.Label label5;
System.Windows.Forms.Label label1;
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.lbIndex = new System.Windows.Forms.ToolStripStatusLabel();
this.btSave = new System.Windows.Forms.Button();
this.dtPdate = new System.Windows.Forms.DateTimePicker();
this.cmbUser = new System.Windows.Forms.ComboBox();
this.tbWW = new System.Windows.Forms.TextBox();
this.richTextBoxEx1 = new RichTextBoxEx.RichTextBoxEx();
this.panel1 = new System.Windows.Forms.Panel();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.tbTitle = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
label4 = new System.Windows.Forms.Label();
label5 = new System.Windows.Forms.Label();
label1 = new System.Windows.Forms.Label();
this.statusStrip1.SuspendLayout();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// label4
//
label4.AutoSize = true;
label4.Location = new System.Drawing.Point(326, 14);
label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
label4.Name = "label4";
label4.Size = new System.Drawing.Size(41, 12);
label4.TabIndex = 5;
label4.Text = "담당자";
//
// label5
//
label5.AutoSize = true;
label5.Location = new System.Drawing.Point(17, 14);
label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
label5.Name = "label5";
label5.Size = new System.Drawing.Size(41, 12);
label5.TabIndex = 0;
label5.Text = "등록일";
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1,
this.lbIndex});
this.statusStrip1.Location = new System.Drawing.Point(0, 659);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(969, 22);
this.statusStrip1.TabIndex = 28;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(36, 17);
this.toolStripStatusLabel1.Text = "Index";
//
// lbIndex
//
this.lbIndex.Name = "lbIndex";
this.lbIndex.Size = new System.Drawing.Size(17, 17);
this.lbIndex.Text = "--";
//
// btSave
//
this.btSave.BackColor = System.Drawing.Color.SkyBlue;
this.btSave.Dock = System.Windows.Forms.DockStyle.Right;
this.btSave.Location = new System.Drawing.Point(831, 5);
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(133, 58);
this.btSave.TabIndex = 20;
this.btSave.Text = "저장(&S)";
this.btSave.UseVisualStyleBackColor = false;
this.btSave.Click += new System.EventHandler(this.button1_Click);
//
// dtPdate
//
this.dtPdate.Location = new System.Drawing.Point(66, 10);
this.dtPdate.Margin = new System.Windows.Forms.Padding(4);
this.dtPdate.Name = "dtPdate";
this.dtPdate.Size = new System.Drawing.Size(178, 21);
this.dtPdate.TabIndex = 1;
this.dtPdate.ValueChanged += new System.EventHandler(this.dtPdate_ValueChanged);
//
// cmbUser
//
this.cmbUser.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
this.cmbUser.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.cmbUser.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbUser.FormattingEnabled = true;
this.cmbUser.ImeMode = System.Windows.Forms.ImeMode.Hangul;
this.cmbUser.Location = new System.Drawing.Point(378, 10);
this.cmbUser.Margin = new System.Windows.Forms.Padding(4);
this.cmbUser.Name = "cmbUser";
this.cmbUser.Size = new System.Drawing.Size(234, 20);
this.cmbUser.TabIndex = 6;
this.cmbUser.SelectedIndexChanged += new System.EventHandler(this.cmbUser_SelectedIndexChanged);
//
// tbWW
//
this.tbWW.Location = new System.Drawing.Point(246, 10);
this.tbWW.Margin = new System.Windows.Forms.Padding(4);
this.tbWW.Name = "tbWW";
this.tbWW.ReadOnly = true;
this.tbWW.Size = new System.Drawing.Size(63, 21);
this.tbWW.TabIndex = 2;
this.tbWW.TabStop = false;
this.tbWW.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// richTextBoxEx1
//
this.richTextBoxEx1.AllowBullets = true;
this.richTextBoxEx1.AllowDefaultInsertText = true;
this.richTextBoxEx1.AllowDefaultSmartText = true;
this.richTextBoxEx1.AllowHyphenation = true;
this.richTextBoxEx1.AllowPictures = true;
this.richTextBoxEx1.AllowSpellCheck = true;
this.richTextBoxEx1.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
this.richTextBoxEx1.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxEx1.FilePath = "";
this.richTextBoxEx1.Location = new System.Drawing.Point(0, 68);
this.richTextBoxEx1.Name = "richTextBoxEx1";
this.richTextBoxEx1.Rtf = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat{\\fonttbl{\\f0\\fnil\\fcharset0 Arial;}}\r\n{\\" +
"*\\generator Riched20 10.0.18362}\\viewkind4\\uc1 \r\n\\pard\\fs20\\lang1042 richTextBox" +
"Ex1\\par\r\n}\r\n";
this.richTextBoxEx1.SetColorWithFont = true;
this.richTextBoxEx1.ShowToolStrip = true;
this.richTextBoxEx1.Size = new System.Drawing.Size(969, 591);
this.richTextBoxEx1.TabIndex = 58;
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200)))));
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.tbTitle);
this.panel1.Controls.Add(this.checkBox1);
this.panel1.Controls.Add(this.dtPdate);
this.panel1.Controls.Add(label1);
this.panel1.Controls.Add(label5);
this.panel1.Controls.Add(this.btSave);
this.panel1.Controls.Add(this.cmbUser);
this.panel1.Controls.Add(this.tbWW);
this.panel1.Controls.Add(label4);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(969, 68);
this.panel1.TabIndex = 59;
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(619, 12);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(76, 16);
this.checkBox1.TabIndex = 21;
this.checkBox1.Text = "공유 메모";
this.checkBox1.UseVisualStyleBackColor = true;
//
// tbTitle
//
this.tbTitle.Location = new System.Drawing.Point(66, 39);
this.tbTitle.Margin = new System.Windows.Forms.Padding(4);
this.tbTitle.Name = "tbTitle";
this.tbTitle.Size = new System.Drawing.Size(546, 21);
this.tbTitle.TabIndex = 22;
this.tbTitle.TabStop = false;
this.tbTitle.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label1
//
label1.AutoSize = true;
label1.Location = new System.Drawing.Point(29, 42);
label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
label1.Name = "label1";
label1.Size = new System.Drawing.Size(29, 12);
label1.TabIndex = 0;
label1.Text = "제목";
//
// button1
//
this.button1.Location = new System.Drawing.Point(619, 39);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(121, 21);
this.button1.TabIndex = 23;
this.button1.Text = "폴더열기";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// fNote_Add
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(969, 681);
this.Controls.Add(this.richTextBoxEx1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.statusStrip1);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "fNote_Add";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "메모장 등록/변경";
this.Load += new System.EventHandler(this.fJobReport_Add_Load);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.ToolStripStatusLabel lbIndex;
private System.Windows.Forms.Button btSave;
private System.Windows.Forms.DateTimePicker dtPdate;
private System.Windows.Forms.ComboBox cmbUser;
private System.Windows.Forms.TextBox tbWW;
private RichTextBoxEx.RichTextBoxEx richTextBoxEx1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.TextBox tbTitle;
private System.Windows.Forms.Button button1;
}
}

View File

@@ -1,243 +0,0 @@
using FCOMMON;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FPJ0000.Note
{
public partial class fNote_Add : fBase
{
int idx = -1;
Boolean copyMOde = false;
// Boolean bInit = false;
string sGUID = string.Empty;
public fNote_Add(int idx_, Boolean copy = false)
{
InitializeComponent();
this.idx = idx_;
this.KeyPreview = true;
this.StartPosition = FormStartPosition.CenterScreen;
this.KeyDown += (s1, e1) =>
{
if (e1.KeyCode == Keys.Escape) this.Close();
};
foreach (Control ctl in this.panel1.Controls)
{
if (ctl.GetType() == typeof(TextBox) || ctl.GetType() == typeof(ComboBox))
{
ctl.KeyDown += ctl_KeyDown;
}
}
copyMOde = copy;
}
private void fJobReport_Add_Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
//담당자목록
var dt_users = FCOMMON.DBM.getActiveUserTable();// getGroupList("name + '(' + id + ')'", "Users", "[level] > 0 and [level] < 10", false, false);
this.cmbUser.DisplayMember = "dispName";
this.cmbUser.ValueMember = "id";
this.cmbUser.DataSource = dt_users;
if (FCOMMON.info.Login.level < 5) cmbUser.Enabled = false;
//사용자목록
//해당 자료를 불러온다.
if (this.idx == -1)
{
//신규추가임
this.dtPdate.Value = DateTime.Now;
cmbUser.SelectedValue = FCOMMON.info.Login.no;
checkBox1.Checked = false;
richTextBoxEx1.Text = string.Empty;
sGUID = string.Empty;
}
else
{
var db = new DSNoteTableAdapters.EETGW_NoteTableAdapter();// EEEntities();
var dr = db.GetbyIdx(this.idx).FirstOrDefault();//.Where(t => t.idx == this.idx).FirstOrDefault();
dtPdate.Value = DateTime.Parse(dr.pdate);
cmbUser.SelectedValue = dr.uid;
checkBox1.Checked = (bool)dr.share;
tbTitle.Text = dr.title;
sGUID = dr.guid;
//내가 작성한 글이 아니면 공유를 지정할 수 없게 한다.
if (dr.uid != FCOMMON.info.Login.no)
{
checkBox1.Enabled = false;
}
if (string.IsNullOrEmpty(dr.description2))
{
this.richTextBoxEx1.Text = dr.description;
}
else
{
try
{
this.richTextBoxEx1.Rtf = dr.description2;
}
catch
{
this.richTextBoxEx1.Text = dr.description;
}
}
}
if (String.IsNullOrEmpty(sGUID))
sGUID = Guid.NewGuid().ToString();
this.Show();
Application.DoEvents();
this.richTextBoxEx1.Focus();
// bInit = true;
}
// editform.editor ed;
void ctl_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Control ctl = sender as Control;
string nm = ctl.Name.ToLower();
string search = ctl.Text.Trim();
Console.WriteLine("inner keydown " + nm + ":" + search);
switch (nm)
{
//case "cmbrequest":
// //요청자가 마지막으로 입력한 자료의 process 를 찾아서 기입해준다.
// var lastprocess = FCOMMON.DBM.getFirstValue("process", "purchase", "request like '%" + this.cmbUser.Text + "%'", "pdate desc");
// if (lastprocess != "") cbProcess.Text = lastprocess;
// tbSID.Focus();
// break;
case "tbdescription":
if (e.Control)
{
btSave.Focus();
}
break;
default:
SendKeys.Send("{TAB}");
break;
}
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
FCM0000.fSelectDate f = new FCM0000.fSelectDate(this.dtPdate.Value.ToShortDateString());
if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
dtPdate.Value = f.dtSelect;
}
private void button1_Click(object sender, EventArgs e)
{
this.Invalidate();
if (cmbUser.SelectedIndex < 0)
{
FCOMMON.Util.MsgE("담당자가 선택되지 않았습니다.");
cmbUser.Focus();
return;
}
//바로저장한다.
var db = new DSNoteTableAdapters.EETGW_NoteTableAdapter();// EEEntities();
if(idx == -1)
{
//신규
var dt = new DSNote.EETGW_NoteDataTable();
var dr = dt.NewEETGW_NoteRow();// new EETGW_Note();
dr.wuid = FCOMMON.info.Login.no;
dr.wdate = DateTime.Now;
dr.pdate = dtPdate.Value.ToShortDateString();
dr.uid = cmbUser.SelectedValue.ToString();
dr.description = richTextBoxEx1.Text;
dr.description2 = richTextBoxEx1.Rtf;
dr.share = checkBox1.Checked;
dr.title = tbTitle.Text;
dr.guid = this.sGUID;
dr.gcode = FCOMMON.info.Login.gcode;
dt.AddEETGW_NoteRow(dr);
//db.EETGW_Note.Add(dr);
db.Update(dt);//.SaveChanges();
}
else
{
//기존
var dr = db.GetbyIdx(this.idx).FirstOrDefault();// db.EETGW_Note.Where(t => t.idx == this.idx).FirstOrDefault();
if(dr != null)
{
dr.wuid = FCOMMON.info.Login.no;
dr.wdate = DateTime.Now;
dr.pdate = dtPdate.Value.ToShortDateString();
dr.uid = cmbUser.SelectedValue.ToString();
dr.description = richTextBoxEx1.Text;
dr.description2 = richTextBoxEx1.Rtf;
dr.share = checkBox1.Checked;
dr.guid = this.sGUID;
dr.title = tbTitle.Text;
dr.EndEdit();
db.Update(dr);
}
}
DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void dtPdate_ValueChanged(object sender, EventArgs e)
{
var myCI = new System.Globalization.CultureInfo("ko-KR");
var myCal = myCI.Calendar;
var myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
var dat = myCal.GetWeekOfYear(dtPdate.Value, myCWR, myFirstDOW);
tbWW.Text = "ww" + dat.ToString();
}
private void cmbUser_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
var serverpath = FCOMMON.DBM.getCodeSvalue("55", "01");
// var serverpath = FCOMMON.info.datapath; // @"\\10.131.32.29\Data\Project";
if (System.IO.Directory.Exists(serverpath) == false)
{
FCOMMON.Util.MsgE("프로젝트 기본경로가 존재하지 않아 진행할 수 없습니다\n\n" +
serverpath);
return;
}
var path = serverpath + "\\Note\\" + this.sGUID;
if (System.IO.Directory.Exists(path) == false)
{
try
{
System.IO.Directory.CreateDirectory(path);
}
catch (Exception eX)
{
FCOMMON.Util.MsgE("프로젝트 저장소 생성실패\n" + eX.Message);
return;
}
}
FCOMMON.Util.RunExplorer(path);
}
}
}

View File

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

View File

@@ -537,7 +537,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = this.ta;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -1179,7 +1179,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -267,7 +267,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = this.ta;

View File

@@ -3029,7 +3029,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -168,7 +168,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -116,7 +116,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -529,7 +529,7 @@
this.toolStripMenuItem1,
this.ToolStripMenuItem});
this.cm.Name = "contextMenuStrip1";
this.cm.Size = new System.Drawing.Size(299, 418);
this.cm.Size = new System.Drawing.Size(299, 440);
//
// columnSizeToolStripMenuItem
//
@@ -676,7 +676,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -117,63 +117,66 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
<value>340, 17</value>
</metadata>
<metadata name="dsMSSQL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
<value>235, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
vAAADrwBlbxySQAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+
+8H/4IZrWOXAIGPK0/8L933Aqii+5+H/pfv///evvoAhBwcJPU/+T9vyHkNRRPt9sObMWf//e5WewG1A
ZNej/72rP6AoCm29B9bcuu7/f//Ov/9d8g/gNiCw+eH/uvnv4IqCW+7+X7T3//+Odf//Z8z5+d+u7ud/
+4ztuA3wqLr/P3/aGxRFdsW3/6fP+f3fv+vbf53Cd/8tEtbjNsC+9O7/7MmvMRTpp5z/b1L04r9K1qf/
xpHLcBtgkXfnf2r/a6yKDJJO/JdN+/pfN3gehhwcGGbd/h/W8hKnIv3Uy/81fKdhlQMDnbQb//2qH+JV
pOIxAaccg1Pulf8gBXgVDUoAAPB2wKtYlLYeAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
vAAADrwBlbxySQAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33
wZozZ/3/71V6gjQDQlvvgTW3rvv/37/z73+X/APEGxDccvf/or3//3es+/8/Y87P/3Z1P//bZ2wn3gAQ
sCu+/T99zu///l3f/usUvvtvkbCeNANAQD/l/H+Tohf/VbI+/TeOXEa6ASBgkHTiv2za1/+6wfPIMwAE
9FMv/9fwnUa+ASCg4jGBMgMGLwAA0BRgmCws/7cAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
vAAADrwBlbxySQAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5
8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu
I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+
X6Bjq5qXAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
vAAADrwBlbxySQAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe
/w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/
/tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI
ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6
3AZY5N35b1NwBUMzTC61/zXcS1iBYdZtrJpBACQX1vLyv27wPKzyYKCTdgOnJEjOr/rhfw3faTjV4AVO
uVf+q3hMAGN0uYEFAL7Rv7NmXVYYAAAAAElFTkSuQmCC
</value>
</data>
<data name="btAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
vAAADrwBlbxySQAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij
UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK
yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ
My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs
gRYWQPNO0NwkWNYGxg+DcYNgGSu2Z0xy4C7SiJtwE66kuq049xlAs2Ng/AiS7nbszXci6jIh4jQjPGWR
A+U59hiluowbQMzVVfmgPKU/GdcPxlmx5TArB6KzJunf0gTtPcqBzeluhCYsCIz3wm/rUw78WX4AJCPY
nlwVm9EAAAAASUVORK5CYII=
</value>
</data>
<data name="btEdit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -189,106 +192,106 @@
<data name="btDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG
QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX
bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII=
vAAADrwBlbxySQAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC
DrhIDiQl5USy07zNa2tKf2laaRf84/J8xBCetab4XL/f76fn+SnKX4DrGLqrwbHDzywkWJlHdJYjLEbY
Wg8q4eYKlma+d1hbgF4TotWIaC+FuYmAktcXCksx2HrknBOHX1KbiTDngrXhW0kMdSBM2TA5Io+/wuI0
oiz5TcRwB7hPYazfLx3rDz7+gCsXNBb4v1SdgajTQ19TaOMP2NtFmPSIilSo0v1y7FHBnAdZMWi6aO51
kVCTGZoEzzWYciA/Dl9bBZwfvh3XmxIJy7PBJdx5odnAQ2E87qJUfPbtzwGjVpxJEWjH+4ElPD/BYBsY
EjhKicW3sSoVb0vSUFsq0W6upUxhdxMtOxZnYhhqVz1oj3JJUZSdpCg0p0POmLKhJofjNqaDeikX3tFG
uuHsQM65cML4ABzY5fA/eQGKIwMcVjm2bAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII=
vAAADrwBlbxySQAAAERJREFUOE9jYKAG+Pbt239SMYYBDMFz4PjD+49wjCwGomMm7MM0hBQDkA0h2wAQ
JtoAbIbR3gBi8KgBg9IAcjDcAEoAAPRDDFMGBb7pAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL/SURBVDhPY6AYFB9PNQfh/ENAvC/RPGtnjHnqlhjzxA0R
5jGrg80jFvmZB8/1Mveb4Wru1e9gDtWGAEXH013r98dzxCPj+TBsD8b2IFxvz+HUYe0K1YYAeQeSXQuP
hXAWH0tvAuHCQylNufuSmjJ3xTWlbIlpSlgX0RSzIqgpbJFfk890twV+093qPCY61EG1MzBk70lwTduU
xlV4LG1R3oFU08wdCVap22LtUzZGOMWtDnaLXOrvFbzQ18d/pluAU6dNlUevo5dTu/U8qHYGhvStMa4x
O2O4cw8kLc7YHm1bdCz1Rt7R9JsFB5Nv5eyOv52xM/pOyoawu7Hrwu5GLgx4GrzI507ALLfXPlPdTrtP
cDzNkLA2wjVpgx9v1u74xalbolyA3viftjW6KnljRFf82rBpsatClkUtD9wUutB3T8AM14t+U12POXc7
3Hfrs98IDJP/DDHLAl2jF3vwpW6NWpywJswr/2DK/9TNEXMS1oevjFkZsi1qWeCBkIXexwNne5zxmuh8
273f7oJju+Ujx3arzdYNpv8ZQub5uvrPtxdIWBe6JHxJQBAwTP4nbQjfEbcy5BDQ/6dCFvhc8Jvpcdl7
kuM113bbB/btllct600fWdYabTStMPjP4DvdzdVzgpNr+GLfHb5TXGvTtsX8j1oRdC1sod8tv5nud32n
uz5w7Qdq7LJ5aNds/tC6xvS6aYXeQ5NyvfX6hVr/oUHJwBA032ue7wz3oMT14f/Dl/qeD5kHtHWG61X3
iY7XnLtsb9i1mN+wrDW+Zlyme1U3X/WBXp7Gaq0sVYQBQJvmAeN3XvTywP++sz0fu01yeeLYZw/0q+Uj
m0azh6blug+MSnUfaGdr3tfMULqnmaG8TDVFEWEADITM9/nvN8N9s9ckh02uXTYbgTavt6o3Xmdarr/a
oEBrhXau2lL1NJVFKsnyCxXjZTENAKa0/54THf87d9n8t2u2+A909n+Tcv3/IP9qZ6v9V09T/q+cpPBf
IU72v1y0FKYBdAYMDACTvk5keWFIqgAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL+SURBVDhPvZDrT1JhAMb5aLVan9u6qpk6L8vohFwOF98D
IufI5QQIR0HkgJfU0JWupRa2UbQ0XAZmQUCaRqJ4S8sVuYVbtVVrkl1MtPrUH/E22rSmH9t6tt/H57c9
D4Pxr2leoJEkjfM00vi0EqmdpRB6kkIqx7QIFVIh2gCBqO5IEcIDEGk3H9ncZzQtWEHHM0OK4W9866C/
QZN0oCnCy2ywuc9oiFYBW4zc1hyz2pPY5s32+qcme83jCrt5krIbw1o7NaS0qwOEXebG7hJurF3i4rdv
COrmjMAybtlui1kCDVGaWTNjLKSny1FzRCusCKmwsoFSqcqPy0r7MLnwCuec5JpAKnSwvRsC6xQFqFlq
R33UFKx+pOc2xeilhhfWj6efV3069cTwuXpW/8U8pl4uD6uXy/zyH6qA7Iv8FvZT1ou9El8XvGIYR7TA
NEbsrH1iCNKTuqLmmBVapvTnqiJap2FEfbP8ATmou68YP+nH5+Qe8I7oBTHRVf4K1oVGhJfZkEENKoA+
KNlFT+mCxodqaeNzM6QntLeNo5phapic1g0qoqS/ZEHRL3ktdYk+i7t5bwUO1prAUTjBvsCEDNKLg1If
utsYPnlPc0+urJszQtOYZqZimJwvGyh9Sd6VvSX6JO9LegRx4OAmUAdrkdXBXGO1HY0wW/MhA3djoPi6
EGiC+Ax+A7RZpimoG1LG1X7iE9EnXsbdIAG6uQnUyVnldSKr7PPMD8zW3NVjLbmjebYsuHGm0if14h6x
snJUAzUD+BvSK3lf4gGLYpcgLnJyl3iXkCVWW0G84GzOYk5jeiK34Ugoqzb9jwB3A6/Exffq7ysg3l/8
Desp+i7oQteSezkXj68yW3ISR8/kJLLrMlcyqw99zaxOHUw3H/wjWA/pk0HCI56Q9vDHgZMT4V1CRgs7
CsLMlrxQ/umsoez6wwMZlrRAWtV+/0HD3q0Cwo3BYpcAipwcyOs8AVltBfBYSx5M7s2uOwwzLKkw1XQA
HqjYC/fp92wV/Pf8ApO+TmTbjy6aAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIwSURBVDhPpZL/SxNxHMbvPwoClVIsFrTKUtcmLY0WGChF
SKESs3bThpqMigpL15TLXClrrcWoLLd0MjV1aUv6al9mX7Zbm9taWxnd091nh+6WP9ULHg7u/TwPbz68
qf/G6PiI9lsBGKzvoR9YwMn+N9Ayrx6LYwl9o1Fd78jSYu+jCMyuMLofhkEl07+Qq3qa5sSMBMYd/Z7r
pU57W2Dw6KAf0eKEq5H8rDM9g5iR0OP+Sub981fA+C/DPHsRFHIQDIcuza1ZYBoOk3k2lMUTQrYEw8EL
PklBlUWhqmB2oaxLDnW3QuKnrONBsStDOJ6G5uzUSkGVpVSlpEu45uEmtI02o/zcDhIUGBgLZgrskyHY
J4JwTgfx9ksCezsmSIG6r1SloLdz2nv12GMqR/GpAshbt2DQG4JV0Dj79wavP8VR0eqFitlZWUbLuUZn
HWR0IVdE520z3l5EPLUM2yRLvHb+SwrIFvwGNl411gNQ9pSg+vo+HHUcxmZ6A7eRXr9V2KjN9gGx5DIc
UyzuTGdEDT1hkUitvqzmaiX0bi2O2GtQTBdw+U2ZsEDL4DssffuJu77MBg9m+UNyzrDIlrpLCVl7IYr0
ecg/vm4lLKC7sUAKhvigECYFN/mHyOZFIAaN0bvmHWivvUSUL3A9DROv288XCIFcbepw/xYzEhqY54gk
foCNpfE5kkKATYLabfAgV7KG+3YxI+GYeX6sttOfrO2cQ/V5H/afWb2Xf4Si/gBgZCyDUckeSQAAAABJ
RU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAItSURBVDhPpZL9T1JxGMXvf9TWpq501miLylIJXKQt2mzT
1ZqrqWtYXDSm5li1apYSuptJ6YiIxipLSHG8pBJGrld7wV7g3kBAgrR1T/teSuHmT/XZzi/f55yzZ989
FPW/6G0f0XkrBJ35PbRDczg5+AZq5tVjsY8wMB7T9I8tzPc/isLo4ND7kAOVyvyAWI00zYvDBMYZ+yb2
UqfdbdC5NNCOqXHC0Sw8NhieQRwm9Dm/CvPB2StggpdhDFwEBRHEcOjSzJoFhlFOmOdCmVwR5IoYDl7w
5xXUmGSKKmYXKnqkUPbK8vyU2RPOa+QSGajOTq4U1JjKFXK6jG8dbUHHeCsqz+0QgoShiXC2wOqLwOoN
wz4VxtsvSezt8goFyoFyhYzezqvvNWKPoRKlp4ogbd+CYXcEZiIP+/cGrz8lUNXuhoLZWV1BS/lmewMk
dDFfQhds09+eRyK9DIuPFbxW3+8CYQtvGBZvGHXmA5D3laH2+j4ctR3GZnoDv5Fev5Vs1GH5gHhqGbZJ
FnemsqJGnrBIpld/VnW1GlqnGkesdSili/jClmyY0Db8DguLS7jrz27wIMCBsk+zyJWyRw5JZzFKtAUo
PL5uJUzQ3JgTCkYCnBAWCm56sm1/eBGKQ6V3r3kH6msvEVtcguMpJ3idQQ4UCYi1qcv5UxwmNDHPEU1+
BxvP4HM0jRCbArVb54JYkqb7VnGYcMw4O1HfHUzVd8+g9rwf+8+s3ss/8wtgZCyDeJGLXgAAAABJRU5E
rkJggg==
</value>
</data>
<data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJySURBVDhPpZFLTNNwHMd78O7NuwcvIhJFpjcOJiYmHjwZ
Eg8mGi9gosGEgwcqMSBqguGhJkgwCvIWlCFhM2TBwDZAGLKKZWyzG2PSCXS062Nd16//jSpqYuLjm37T
R/6f7+9R6r+1NFK8EBk+o0d/8croiVDwxeF9ob7ivT/5TfFel6t0j4VTlLfDpplmFoBJrpx3njNqAjFX
eXrVc1775vjcVTXiqYywr46es3CKYoZKkqahQos1QA43QuaeQIkMwMwIJCsF05CIt3feM1vgeT7NDtoY
C6eoQNcRMatvE7gFqWAzxA812JwpR2L2CgR/LYTFmxAWbmDLV0VcSTrjERg8Jlk4Cegv0TPKOgSmBVvz
9eAnrkPhp0lV0aqeuye/d5Abz9dfpFp4roPjen7+rEasAIacBw2FhRZ/AIbphd3tRfs4h+7JNTh9UeT2
ZuEkoMWWNg0FhuhFRnBA3xhAer0N6uo9+Bc7MDLHY+WzjE8bGqZDIsYWvmDYThsWTv5Cq03L6iL0TTvS
fGe+qhqthRKuQp87jqWYhBlOgTssY4rYH9fQ85aDhVOU736RauoCgZ9CW2uEGqkhcCXkwKV828GEBnco
hclgCuOshLmohs6J2G7A8p3CuJJkki5Xdza10g4p8BAS2wDpYx16yMxLazImAjtwzu9WNbSOLu8GsHUF
19j6Q13M7YMJX32h+qNfD9HGdFDEPIE8nIpZUt3+XgJN06aj+uQFK+L3anJw+1udHN1PdtE7Fcdjpyub
g/1jbfA2l4nPKwrKrKN/rpfVpy97Hl0Uwo4mjN4qla3Pf6dnFQfKxuhTivPu2d1d/Jso6iuYciOObRud
LgAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJqSURBVDhPpZBNSBRhHMY9dO/WvUOXzKTMrZuHIAg6dAqh
Q1B00aAw8NDBSUKzAsOPCkyM0vxOyzVxN2QxdHfVdM2dbFx3p9mvydl0Z53Z+djZmXli15o1IYp64OF9
X16e3/+jqOh/tTpethweO6dF9nh94lQo+OrogdBg2f5f/K5sv8tVsc8CeLttqmkaAEzAzHnnnlUSiLmq
MlHPRfWn2cXrSthTE6beHL9gAcjR8pSpK1BjzZDoFkjMM8jhYZhZHqaRhqmLMPXtnXc2CY7jMtSIjbQA
gd5jgqFtQ6LbkQ62QfhUj635KiQWroH3N4BfuQ1++RaSvlokfTXIKhwCIyfEAmCoXMvKG+DJdiSXmsBN
34TMzcHUhR/Vc2fK6iA3nm+oVNnVwUktP7+hAoYM6FI+qMsUVPYRSHIAdrcXXVMM+mbicPoiyO2tAGi3
ZUxdhi54keUd0DaHkdnohBJ9AP9KN8YXOax/lfBlU8VcSMDk8jeM2QndAng7bKqhCdC27MhwPfmqSqQB
Ml2LQTeL1ZiIeUaGm5YwS0vwsyr63zOwAL6HpYqp8chwz6HGW6CE6yHTNZACV/JtBxMq3KE0ZoJpTFEi
FiMqeqZjBcDavRJWTpEpl6vPSK93QQw8hkg1Q/zciP6ZOFbjEqYDO+GcP0RVdEysFQBUY/ENqulIL3n3
cMLXVKLs9ttRQp8LCliKqvAwChYiKuwfRRAEYTrqTl+yIL9Tq4M52OFkiCE3i4FZFk+dLiMX9k92wttW
KbysLq7cm/mjXtedvep5cpmnHa2YuFMh7f3/K72oPlQ5SZyRnffPF3bxr/oOmHIjjpOS/7wAAAAASUVO
RK5CYII=
</value>
</data>
<data name="toolStripButton2.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==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton5.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==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>387, 17</value>
<value>539, 17</value>
</metadata>
<data name="autoToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -330,214 +333,217 @@
</value>
</data>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>186, 17</value>
<value>404, 17</value>
</metadata>
<metadata name="tam.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>248, 17</value>
<value>466, 17</value>
</metadata>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>83, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>455, 17</value>
<value>607, 17</value>
</metadata>
<metadata name="bsHistD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>934, 17</value>
<value>220, 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>
<value>713, 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>17, 56</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>799, 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>
<value>114, 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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
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
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPrZPdS5NRHMf9C7qeW3ue0vAi86IYRaWQXkSI
hGvgS5pmLpvZtmcvakrbhKEzLdLA+bIkRbSVplabcyZT52xzTikTlz2KiLmbXqg2jF7sG88DLhXqIvrA
D87F7/M9nPM7JyLif5MzlRh9buK4JsN5lE62HAwmW+KCQnssLbTt16QO7Ive2b+NXHeCKM15OKB2ZqLD
b0TvYidb7fMNuGxPRZKZDJwwE6KdHkuu65hIOCoI1c3oYFvpQ+ur29DPlLLFrK0rvaj1XMUhIz905A5v
e8jZ8fgokUOwxshMY7lPihLvZSg9Eqg9EhR7JCibLIJluQfXXSU4YOSsxRmJqHBApkOgpUbS2Z0ZmREp
90XIJvIhc12AwpUPx+oAtG45rMs9yLl/CjG3dmvDAcKncXS7vwEmfz1KJgshfyaGzJUH+Xge5M48jL6x
gyEQWkXzi1q0ztSCrObQ4YCTlpj1R0v3UOFTQuUugG2lH/MfZkGN5WNkdZCVf2x8R/PzG9COFaLX3w5C
t2s9HJD0kFzvW+yCzkuhwqvCp68fWen9l7dh2ThdDYU9CxrHJfT520CUbw3oIum7s/VombsJ9bgYhsky
hL59ZuWNnxswTlVBakuH0p6FRl8lWtwGkOotR4jvILTi/hRYlh6gbEwMhSMXlRPFWHg3h+bpGlwZSIPM
mgG1LRuW1104bUoEUcr9fYmCViKKGY3BqcRj2ozS4fNQDWWDGsyE3MoUI2fhyUIndIOFICjOGkFtGSND
bB1PtEfHC+kdUlhpM5p8BmiGC3BtSIymqSpYFjqhsRWAL+GGCMWOh7TJ3hqeiNRFBs60JaHFa0D3SxO6
Z00wuvVIaUxAZFFkgJD9Qd6Er+dHE1quhizn0ISKGyQobpCUcmiC4mr4Uv7fP9O/8Atrq7EfLhq0jAAA
AABJRU5ErkJggg==
</value>
</data>
<data name="btViewDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADuSURBVDhPY6AK+E8mgGqHGPB5/rz/X6ZP//+pq/P/5+pq
CM7N/f85Ofn/58jI/58DA/9HmknCMYYBIM1/X736//vBg/9/nj79//Py5f8/z50DGwzDJ4K8/28sc8Vu
AMhmkGawjbGxEFuhNoOxjw/cgARrGUwDQE4G2YqiOTQUxYDZriZ4DAD69+umTTg1EzYA5HSQX9E1YzEA
axiAnA4KSGwa0Q0IMZbAYgDQVlBAvgZ6BRfu1pfFbcBLU9P/95WV/9+Qlv5/ko8PjnewscExyOk4DSAG
4DSAGEBVAzBigRgAMwCGyTIAHTAwMDAAABYIANCNo26UAAAAAElFTkSuQmCC
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADuSURBVDhPY2CgBvhPJkAx4PP8ef+/TJ/+/1NX5//P1dUQ
nJv7/3Ny8v/PkZH/PwcG/o80k4RjDANAmv++evX/94MH//88ffr/5+XL/3+eOwc2GIZPBHn/31jmit0A
kM0gzWAbY2MhtkJtBmMfH7gBCdYymAaAnAyyFUVzaCiKAbNdTfAYkJv7/+umTTg1EzYA5HSQX9E1YzEA
axiAnA4KSGwa0Q0IMZbAYkBoKDggX+fm4sTd+rK4DXhpavr/vrLy/xvS0v9P8vHB8Q42NjgGOR2nAcQA
nAYQA6hqAEYsEANgBmDNC8QAWDggA5A4ABYIANBlPZqZAAAAAElFTkSuQmCC
</value>
</data>
<data name="btSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAABEpJREFUSEut
V+tPW2UYb7xE/wQvMZmZbs7v6hK/+M24EKfMpoiWy+hYUTZxso3aoWepwfXCoKYNqw500hVQ0Mgc98Kq
bSllA3YxM2SUgq7MGwV0fpv1/R19Tt8eXuua8uHXnvPcfue9PM/7vJpnawpyglb72Z3PH/rqgV31g08V
1g89vdM8+NAz0thdIttsEArV0EkjW8obI/bqlov+N9uuLtR555elnsRfR3sSqUOfXvuz2DK6Q+SXDUIh
oUga21ThnOwwnY79ZutLpuz9K+vw3pc/pV6xjBSI/LNBKARKbeHa2lOzP9r7xYQENXGZPeSvOfldXI0S
W3DxpXcGdpJdBhmANdztiHik7sRNngAjNncsrO7zXA5XuWY6Kp3nP9rjnGitdEZ7tZL/SfKvPnFpkPcD
TL74Db0jpOd5lAcCSBt6f7lFTra+ldTh9mvXdx+PenQNI1vU9mqsJ06myhzjvWq7jBdMLz9S69nl1F7X
hYDeHniYt8sG0Yjf7b5+s9Qa2s/bKQ/YSP+saZrU0Bz94rl9fffwDv8HIjZ3xpPHvl5WyGs/mV3kB6A4
MJJO2kiYXqN76lyupACI5TW1BiuMrukwESOmoXmynezkn1cto1uRMmSENc1lennoraFzenuoCM8vWgLb
EIvimryxG8WWoUehk43L7WE75Sn+K5omTlCgXPFCXf8m/p3NZFs6JZMpFCLIZSUqEn2V2Te/tuvfr9oI
IBNYzFWK/3rLzBDkct6iDJJiv+dySO2cL6o9VyIUH1yo7ZoC85kHTb7YCimq3FOdIud8YPxguovim3zz
KzhkNIXS8PajPUtKwTA0TXpEzvnA4Jz0UHwcLoXm4e0aHG/sJU3MjETO+WBPc/RDhbg7cauwvv8Jear5
xd/rvrDxU+2e/pzi13ljyzsOnr1PU1l5/u7MzXUlInLOB9WeS8rmOtD2/Tw2tKx4reXiCCnMvvjqRqbT
y9LYY+auhTWKz7iGIZeV7ERy8EmOpOed1UUhFxiOT5zki1OpI2SFXFZqj4xurWuf+5m+CmVO2/DN49Ch
/KEMUqBcgJbpcPvckhLXG/tV+/7AI9ApRhXN0Q4UcjJi+RwqPhYoYZshgcJPdrcLViTurXJNhdIx2Uw2
Rb2kVwx1Nv/mg6dmfyBiHGlsvZN4zpUYpKze9+JopXhvfTy7WMQ6UrLJcCizBo1Sz9LvZEzIhRjTa3RN
BXlSlrt/lDi+fYO3y3ACyhvHz6Q32u0T6yzD29goW7Gm/JKhjSprDK877TJeSmwBnck7l+BJAZ4YjR0a
PDR6BtbwGd0zXUwfOdIZX6PdS8BIQYq85XkA5QGtJ1pQUWuKlpXs0MqipeUJ1iOZqmVrqrcHa8hPDaEw
G7IRY8RIGZYhp/mNJIJQmA24ruDagusLThrU3gOtV+OofuWOcavO4t8s8lNDKMwGHOK4qOHCJl/c3h64
X5KkO0S2/40Czd+YEQefvqIj4QAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAABEBJREFUSEut
V+tvWmUYJ16if4KXLJmZbs7v6hK/7JtxaZx2EmqV3jjr6GSzbt0GnlXPgqnj0gEG0uLWzllGWy0au0uv
tGNyKNCOXjYz06xAq6PzVmh1fpvH/NAXDu+hpaT98Auc5/Z7b8/zPq/s1foSWTGQy796+PXj3z21r3Hg
5dLGwVf2sgNbdnOjj9B2hSAR5IOCG95e3Rw0aVqmvR+0357XumJLnCfxzylPQjj+5Z2/y/Uje2ifQpAI
xCjjRreqbOOduovRP4xXk4KpLyXBJ9/+IryjHy6hfQtBIiCoNAYaGi7M/mzqy0+4GnGViffWn/shTqPC
6F9466P+vasSYw9rzEEn15O4LybAjNnO+eVDzpuBOvtUZ61t4ux+W6it1hbulXPel4i/pnVmgB6czh2/
pzTzSjGPhBikTb2/PcgSpoQTHXfu1pwJOxVNw9tpexpS4qRQZR7rpe1yPrC84pkariwJB+w3fEqT7xna
cTVIiVPCxz1371ca+MN5iXGQ/tvTLCljDX/z2qGrj9HB1wIhZrviydOXlzLkDV/MLognkHFgrOEucpCw
vGpH5FqxpIQ4vacGv0ptnwwQYsRkrOMdOcTv6kd2IGWIEfa0mOUVQ2ngrylNfBn+v6n37UQsElfnit4r
1w8+lyGuNgVMJE/xq7KEWumA68Ub2r6t4m/GGm7PpmRSQCGCPK1ERSKjYt2xlX3/j2ozgExg3bFlEv+9
lqlByNN5izJIFIedN3naeaPQOG8FSXxwobbLSthLT+vc0RRR1DkiXbTjRqH+bLI7s8/uWAqXjKyUG9p1
yrOYKRiMZdxJO24UjG3cSeLjcillh3bJcL1xnkSW2Lb5xPut4c8zxD2JB6WNfS+ml1q8+QccNzZ/qR2T
X5P4Wld0ac+xK0/IamsnHs09XLeCtONGoXHOZA7XkfYfYzjQacXBlulhomDd8eXNTKe3udHn2e75FRL/
YMv0EORpZY05aBYnOZJe7EwXhWLAnAmdExenSjNvgDytlJ8c2aHtmPuVjAplTt50/QXoUP5QBumA6wFa
phMdc4uZuK7o7/JP+5/NEAMqa7gThZwY1TkifPlpX4XWFU2g8NNBC2E3N/p4nT3CZ2MmBcYSdhF9dnRG
77ZjF2Z/IsS40lh3PIn/xRKDVGUJ9eJqJfGOnp9dKGMHtkiIgSqDX815Fv8kxgTFEGN51faIX0zK9ST+
qjB//77YTuJY3Tx2iW7w1kOs0A/tVFlCbdhT8ZahjapqDkhuu5yPCqNPoXPNJdaaMRo7NHho9BjbxFm1
Y6pb0zoTPNkVX6FbYMwUpMjbVYnReqIFpdtSAC0rsUMri5aWHlwukkLDebQ6/nqaUEK8XqxFjBkjZVTW
8EXxQcoHiaAQ8FzBswXPF9w0qL1H2m7HUf2qzWMGhd67jfbJB4mgEHCJ46GGB1v64fZh/5Mcxz1E2xXC
v5gRB58HNrFKAAAAAElFTkSuQmCC
</value>
</data>
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN
0AAADdABEGw9BwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMZSURBVEhLzVdd
TxNBFF3/hi8+GH0xJmriq5HdzralCMKDGl/LxwMphCe+QqKBmCBB3oDAzyD8A4F+AfJATFRMoAhtUVrY
CqXajvcss2Ep07KlEDzJSSY7d+7p3Llz51b57zHvcj0M6vpgxOuNhD2eGI2NIGMGxmF8Y+ztHGMPhHl1
4IpyI6hpr0K6vhn1+fbX2tpyPwcGeHpoiGeGh01ijG/fW1uPyMYIu92xBZfrBdYKN5UhpGl3aVeflxoa
jGRfHz8cG3PEBNliTdDtXp1T1dvCnTOEVFWlXRqxjo68zLkTrgcCefig3T8VbsuDQltDCw4q2WUpYvfw
RTt/ItzLEa6puRdiLIMzkzm6COGLwr5PiXhHyJwGkoEydHWzq+vC4S3FWGfn34jHsyJNOLour1eamgzZ
wsvgp8ZGY0HXXwq5Y+CXhOgaJPv7pYvA3MwMz05MSOfA7OSkaSObA3HedNXWheQx5jTtcbSubl+2AMzN
znJeKPBCMmkKFM/jW2Fnx7SBbfG8RWgsqOojIUvXR9ffozjIjMHs+DjPx+McKOzu8uzU1MkcjfENgM0h
2drX2rnW0nJESfZOyFI2e73L5cJsUiJeiSiIKxqprY0KWRJ2u7dR+mTGp2gXT6dNAk5EwdTgIKebsyVk
KdSMZTMjI1LjM4Q4nbUFnLsTURAa0BKylQlnp6d5IZUSsiRMY/uZl+MZYQr1lpNQ20XziYRJoDjhSjFF
GqT1Q8gqCr2xyzvnJNcp0e3t4/Ai7DQGTHGyka21eCa58MB/bW4+khmDUlFr3i6OsJcR/+b3H9LVfSNk
qYBQ54BHXGYMXlYBod1mqDTfF7K2klnmKbySkgnMa9rzpfp64+DDB+nCagifiz5fhsrlMyF3AutZXK+i
6yjFjfb20s8iQJ3CLaql6XhPj9TBRRjv7uZ0jL8+MnZTyMhxLa2PBbPZY2xvIxAoecXOIzV7eIn2HDd7
Fq6lvbWAZLAaetxBKjK5RG+vWfp+j46axIuDnPji9+dgQ1emuoa+GLa/MIt4RoMu1x8Q46jXG73UvzBX
B0X5B56Fg+LhPgWxAAAAAElFTkSuQmCC
0AAADdABEGw9BwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMQSURBVEhLzZfR
T9NAHMfnv+GLD0ZfjIma+Gqk7d21G4LwoMbXDXggg/AEjJBoWEyQAG+DbH8G4T9wW9sNkAdiImIyhmwr
ygadMKbbmV9Nu+26jTIw+E2+SXP3+/0+7fV6d3W5/nfFBOGhjPFMQpISqiimZYx1GSEdrlVoQ+htFKEH
bF5Hoi7XDZnnXykY7yU9nuOdoaHy9+lpWggGaXF21jBcQ9vXwcGzpMejq4Sk44LwAnLZeo6k8PxdGeNP
6729uhYI0NPFRUfOBQIUcmRCtqIcd5ut21YKx3EKxnp6ZKTCFnbqlN9fgRpxQXjK1m8qmee7FIxPLvKU
rQxPD7WiHPeE5TRI7eq6pyBUhHfGFunUUEsm5FhG6A7LMwSTQRXFrb2xsY6Ht5XTo6O/E6K42XTCxQTh
9WZ/v84mXZU/9vXpcYxfNkDhThRC0trUlC3BdHllhZaWlmztpkvLy0YM224a3rdKSKoBHOX5x8nu7mM2
2HR5dZXSapVWNc0AsP3QVj04MGIglu03DYw4xz2ywArG72FxYAOtwqEQrWSzFFQ9PKSlcLjWFw4bbSCI
OQ2FbPmmdwYGzmSE3llgVZI22g2z4Sbwi0DB8Ikm3O5kDUxIBpY+NtDmenihYNgpFJyfmaGqKO5bYAWh
UnFuzhbY1ADXNANo3ICmOYKCgQGsjsClSIRW8/kaOJ9veOftbAOrhOw7Gep6aCWXM2zAmQnXyvlgED6p
bxY4IUkbB+dMrgZoJvN3eGHYM5kaPBKx5dXbNrlgg9/2+c7YwLZQs78eDsPeBv7F6z1VMH5jgeHkAJs4
G2j6qhaQhNtdjAnCfQtsLZlttsJ/smSCYjz/fL2nRz9ZWLAlXdZQc83jKcY57hnLtbbF1CVOHa28Ozzc
elsERTnuloxQITsxYUvu1NnxcaoQ8uMDQjdZXoOu5ehjyjjsIXS06/e3/MTOc8rvh53oyPFhz9S1HG9N
1R/o4Rvc9vnKuclJY+n7OT9vGHYcmBOfvd4yxFz6QM+q7hdmDbZRWRB+geE6KUnJK/2F+Zf6A56Fg+J+
aSUpAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="taHistD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1029, 17</value>
<value>315, 56</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1274, 17</value>
<value>408, 56</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>82</value>

View File

@@ -580,7 +580,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -200,7 +200,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -514,7 +514,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -336,7 +336,6 @@
this.tableAdapterManager.EETGW_ProjectResonTableAdapter = null;
this.tableAdapterManager.EETGW_ProjectsScheduleTableAdapter = null;
this.tableAdapterManager.EETGW_ProjectToDoTableAdapter = null;
this.tableAdapterManager.EETGW_SaveCostTableAdapter = null;
this.tableAdapterManager.JobReportTableAdapter = null;
this.tableAdapterManager.ProjectPartStatusTableAdapter = this.ta;
this.tableAdapterManager.ProjectsHistoryTableAdapter = null;

View File

@@ -228,7 +228,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = this.ta;
this.tam.EETGW_ProjectToDoTableAdapter = this.taTodo;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

View File

@@ -557,7 +557,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;

File diff suppressed because it is too large Load Diff

View File

@@ -1,216 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FPJ0000
{
public partial class fSaveCostData : FCOMMON.fBase
{
dsPRJ.EETGW_SaveCostRow dr = null;
public fSaveCostData(dsPRJ.EETGW_SaveCostRow pidx_)
{
InitializeComponent();
this.UseFormSetting = false;
this.dr = pidx_;
this.dsPRJ.ProjectsHistory.TableNewRow += ProjectsHistory_TableNewRow;
}
void ProjectsHistory_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["pidx"] = this.dr.idx;
e.Row["div"] = "";
e.Row["remark"] = string.Empty;
e.Row["pdate"] = DateTime.Now.ToShortDateString();
}
private void fProjectData_Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
//상태
var dt_eetproc = FCOMMON.DBM.getCodeTable("10");
this.cmbProcess.DisplayMember = "Value";
this.cmbProcess.ValueMember = "Value";
this.cmbProcess.DataSource = dt_eetproc;
//파트
var dt_part = FCOMMON.DBM.getCodeTable("11");
this.cmbPart.DisplayMember = "Value";
this.cmbPart.ValueMember = "Value";
this.cmbPart.DataSource = dt_part;
var db = new dsPRJTableAdapters.EETGW_SaveCostTableAdapter();// EEEntities();
//담당파트목록
//var lst_uid = db.EETGW_SaveCost.Where(t => string.IsNullOrEmpty(t.eepart) == false).OrderBy(t => t.eepart).GroupBy(t => t.eepart).Select(t => t.FirstOrDefault());
//this.cmbEEPart.Items.AddRange(lst_uid.Select(t => t.eepart).ToArray());
////WorkGroup
//var lst_wgp = db.EETGW_SaveCost.Where(t => string.IsNullOrEmpty(t.workgroup) == false).OrderBy(t => t.workgroup).GroupBy(t => t.workgroup).Select(t => t.FirstOrDefault());
//this.cmbWorkgrp.Items.AddRange(lst_wgp.Select(t => t.workgroup).ToArray());
////Site
//var lst_sit = db.EETGW_SaveCost.Where(t => string.IsNullOrEmpty(t.site) == false).OrderBy(t => t.site).GroupBy(t => t.site).Select(t => t.FirstOrDefault());
//this.cmbSite.Items.AddRange(lst_sit.Select(t => t.site).ToArray());
////category
//var lst_cat = db.EETGW_SaveCost.Where(t => string.IsNullOrEmpty(t.category) == false).OrderBy(t => t.category).GroupBy(t => t.category).Select(t => t.FirstOrDefault());
//this.cmbCate.Items.AddRange(lst_cat.Select(t => t.category).ToArray());
////Sub Cate
//var lst_sct = db.EETGW_SaveCost.Where(t => string.IsNullOrEmpty(t.subcate) == false).OrderBy(t => t.subcate).GroupBy(t => t.subcate).Select(t => t.FirstOrDefault());
//this.cmbsubCate.Items.AddRange(lst_sct.Select(t => t.subcate).ToArray());
//site 기본값
var prelist = new string[] { "ATK", "ATC", "ATEP", "ATP", "J-Device" };
foreach (var item in prelist)
if (cmbSite.Items.Contains(item) == false) cmbSite.Items.Add(item);
//기본값(담당파트)
prelist = new string[] { "EE1", "EE2", "K5EE" };
foreach (var item in prelist)
if (cmbEEPart.Items.Contains(item) == false) cmbEEPart.Items.Add(item);
//기본값(워크그룹)
prelist = new string[] { "Automation", "Bump", "Development", "FOL", "EOL", "K5EE", "Machine Shop", "SMT", "TCDS" };
foreach (var item in prelist)
if (cmbWorkgrp.Items.Contains(item) == false) cmbWorkgrp.Items.Add(item);
//기본값추가
prelist = new string[] { "Capex", "R&M" };
foreach (var item in prelist)
if (cmbCate.Items.Contains(item) == false) cmbCate.Items.Add(item);
//sub category
prelist = new string[] { "비용절감", "생산성", "자동화", "품질", "환경안전" };
foreach (var item in prelist)
if (cmbsubCate.Items.Contains(item) == false) cmbsubCate.Items.Add(item);
this.bs.DataSource = dr;
this.cmbProcess.Text = dr.process;
this.cmbPart.Text = dr.part;
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.project));
if (curLevel >= 5)
{
}
else
{
}
}
private void btSave_Click(object sender, EventArgs e)
{
this.dr.process = cmbProcess.Text;
this.dr.part = cmbPart.Text;
this.dr.edate = edateTextBox.Text;
this.Validate();
this.bs.EndEdit();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
//this.tableAdapterManager.UpdateAll(this.dsPRJ);
}
void SelectDate(TextBox ctl)
{
DateTime dt;
var dateStr = ctl.Text.Trim();
if (dateStr == "") dateStr = DateTime.Now.ToShortDateString();
else
{
if (DateTime.TryParse(dateStr, out dt)) dateStr = dt.ToShortDateString();
else
{
FCOMMON.Util.MsgE("날짜 형식으로 변환할 수 없는 문자열 입니다.\n" +
"기준일자가 금일로 변경 됩니다");
dateStr = DateTime.Now.ToShortDateString();
}
}
dt = DateTime.Parse(dateStr);
var f = new FCOMMON.fSelectDay(dt);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
ctl.Text = f.dtPick.SelectionStart.ToShortDateString();
}
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
SelectDate(sdateTextBox);
}
private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
SelectDate(edateTextBox);
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
int cnt;
if (int.TryParse(cntTextBox.Text, out cnt) == false)
{
FCOMMON.Util.MsgE($"수량이 입려되지 않았습니다");
cntTextBox.Focus();
return;
}
var sfi_type = "O";
var sfi_count = 0D;
var sfi_time = 0D;
var sfi_shiftcount = 0D;
if (dr.Issfi_typeNull() == false) sfi_type = dr.sfi_type;
if (dr.Issfi_savecountNull() == false) sfi_count = dr.sfi_savecount;
if (dr.Issfi_savetimeNull() == false) sfi_time = dr.sfi_savetime;
if (dr.Issfi_shiftcountNull() == false) sfi_shiftcount = dr.sfi_shiftcount;
if (sfi_shiftcount == 0) sfi_shiftcount = 4;
var f = new FCOMMON.fSFI(sfi_type, sfi_time, sfi_count, sfi_shiftcount, cnt);
if (f.ShowDialog() == DialogResult.OK)
{
tbSFI.Text = f.Value.ToString("N2");
dr.sfi_type = f.radO.Checked ? "O" : "M";
if (f.radO.Checked)
{
dr.sfi = f.Value; //office 는 sfi와 sfic 가 동일하다
dr.sfi_savetime = (float)f.nudOsavetime.Value;
}
else
{
//m 데이터는 sfi가 아닌sfic에 값이 들어간다.
dr.sfi = (float)f.nudSFIMFG.Value;
dr.sfi_savetime = (float)f.nudMsavetime.Value;
}
dr.sfi_savecount = (float)f.nudMSaveCnt.Value;
dr.sfi_shiftcount = (float)f.nudShiftCnt.Value;
dr.EndEdit();
}
}
}
}

View File

@@ -1,248 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="nameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="reqstaffLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="userManagerLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="costoLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="costnLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="costeLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="cntLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="assetLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label10.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label11.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>100, 17</value>
</metadata>
<metadata name="dsPRJ.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>237, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSave.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>
<metadata name="tam.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>164, 17</value>
</metadata>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>303, 17</value>
</metadata>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1,447 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using util = FCOMMON.Util;
namespace FPJ0000
{
public partial class fSaveCostList : FCOMMON.fBase
{
string fn_fpcolsize = "";
public fSaveCostList()
{
InitializeComponent();
fn_fpcolsize = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
this.dsMSSQL.EETGW_SaveCost.TableNewRow += Projects_TableNewRow;
this.FormClosed += __Closed;
}
void __Closed(object sender, FormClosedEventArgs e)
{
}
private void __Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
//프로젝트 목록을 처리함
//this.tbRequest.Text = FCOMMON.info.Login.nameK;
cmbDateType.SelectedIndex = 0; //기본시작일 기준으로 한다
//일단 나만 보이게 함
tbRequest.Text = string.Empty;// FCOMMON.info.Login.nameK;
this.dtSD.Text = DateTime.Now.ToString("yyyy-01-01"); //1년치로 본다 210405
var sdate = DateTime.Parse(dtSD.Text);
this.dtED.Text = DateTime.Now.ToShortDateString();// sdate.AddMonths(1).AddDays(-1).ToShortDateString();
refreshData();
////일반사용자의경우에는 상태를 변경하지 못한다.
//int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.savecost));
//if (curLevel >= 5)
//{
// btSave.Visible = true;
//}
//else
//{
// btSave.Visible = false; //목록에서 저장버튼은 제거한다.
// fpSpread1.EditMode = false;
// fpSpread1.Sheets[0].SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Row;
// fpSpread1.EditModePermanent = false;
// fpSpread1.EditModeReplace = false;
// foreach (FarPoint.Win.Spread.Column col in fpSpread1.ActiveSheet.Columns)
// col.Locked = true;
//}
}
void refreshData()
{
if (this.dsMSSQL.EETGW_SaveCost.GetChanges() != null)
{
var dlg = util.MsgQ("변경된 내용이 있습니다. 지금 새로고침 하면 해당 자료는 손실 됩니다. 진행 할까요?");
if (dlg != DialogResult.Yes) return;
}
string state = "";
string State_Select = " SELECT * FROM EETGW_SaveCost";
string State_where = " WHERE gcode=@gcode and ";
var dateField = "pdate";
if (cmbDateType.SelectedIndex == 1) dateField = "edate";
State_where += " " + dateField + " between '" + dtSD.Text + "' and '" + dtED.Text + "' AND (ISNULL(userManager, '') LIKE @username OR " +
"ISNULL(usermain, '') LIKE @username OR " +
"ISNULL(reqstaff, '') LIKE @username) ";
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 pdate";
string request = "%";
if (tbRequest.Text.Trim() != "") request = "%" + this.tbRequest.Text.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["username"].Value = request;
System.Data.SqlClient.SqlDataAdapter sda = new System.Data.SqlClient.SqlDataAdapter();
sda.SelectCommand = selCmd;
this.dsMSSQL.EETGW_SaveCost.Clear();
sda.Fill(this.dsMSSQL.EETGW_SaveCost);
this.dsMSSQL.EETGW_SaveCost.AcceptChanges();
sbSumE.Text = this.dsMSSQL.EETGW_SaveCost.Sum(t => t.coste).ToString("N2");
sbSumO.Text = this.dsMSSQL.EETGW_SaveCost.Sum(t => t.costo).ToString("N2");
sbSumI.Text = this.dsMSSQL.EETGW_SaveCost.Sum(t => t.costn).ToString("N2");
FormattingData();
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
void FormattingData()
{
////삭제컬럼인덱스
this.fpSpread1.SuspendLayout();
var col_fanout = this.fpSpread1.ActiveSheet.Columns["fanout"].Index;
var col_weekly = this.fpSpread1.ActiveSheet.Columns["weekly"].Index;
var col_effect = this.fpSpread1.ActiveSheet.Columns["effect"].Index;
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
{
var o_fanout = this.fpSpread1.ActiveSheet.GetValue(i, col_fanout);
var o_weekly = this.fpSpread1.ActiveSheet.GetValue(i, col_weekly);
bool b_fanout = false;
bool b_weekly = false;
if (o_fanout != null) b_fanout = (bool)o_fanout;
if (o_weekly != null) b_weekly = (bool)o_weekly;
if (b_weekly) this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.Lime;
else this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.White;
this.fpSpread1.ActiveSheet.Cells[i, col_effect].BackColor = Color.FromArgb(200, 200, 200);
// this.fpSpread1.ActiveSheet.Rows[i].BackColor = Color.White;
// switch (stateStr.ToLower())
// {
// case "검토":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Blue;
// break;
// case "취소":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Red;
// break;
// case "진행":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Green;
// break;
// case "보류":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Tomato;
// break;
// case "완료(보고)":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Gray;
// break;
// case "완료":
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Magenta;
// break;
// default:
// this.fpSpread1.ActiveSheet.Rows[i].ForeColor = Color.Black;
// break;
// }
}
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
this.fpSpread1.ResumeLayout();
}
void funcSave(Boolean pmt)
{
this.Validate();
this.bs.EndEdit();
if (pmt)
{
var dlg = FCOMMON.Util.MsgQ("변경 사항을 저장하시겠습니까?");
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
}
try
{
this.ta.Update(this.dsMSSQL.EETGW_SaveCost);
dsMSSQL.EETGW_SaveCost.AcceptChanges();
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
FormattingData();
}
catch (Exception ex)
{
FCOMMON.Util.MsgE(ex.Message);
}
}
private void projectsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
funcSave(true);
}
void Projects_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["gcode"] = FCOMMON.info.Login.gcode;
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
}
private void autoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
this.fpSpread1.ActiveSheet.SetRowHeight(i, 25);
//dv1.AutoResizeColumns();
}
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
{
col.ResetVisible();
col.Width = 100;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColsizeSave(this.fpSpread1, fn_fpcolsize);
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
private void toolStripLabel3_Click(object sender, EventArgs e)
{
//사용자목록처리
if (tbRequest.Text != "")
{
tbRequest.Text = string.Empty;
}
else tbRequest.Text = FCOMMON.info.Login.nameK;
refreshData();
}
private void tbFind_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btFind.PerformClick();
}
private void btFind_Click(object sender, EventArgs e)
{
string search = tbFind.Text.Trim();
if (search == "")
{
bs.Filter = "";
tbFind.BackColor = SystemColors.Control;
FormattingData();
}
else
{
try
{
var cols = new string[] {
"name","process","reqstaff","usermain",
"orderno","usersub","userManager",
"remark_req"};
bs.Filter = FCOMMON.Util.MakeFilterString(cols, search);
tbFind.BackColor = Color.Lime;
tbFind.SelectAll();
tbFind.Focus();
FormattingData();
}
catch (Exception ex)
{
bs.Filter = "";
FCOMMON.Util.MsgE(ex.Message);
tbFind.BackColor = Color.Red;
FormattingData();
}
}
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
funcDelete();
}
void funcDelete()
{
var dlg = FCOMMON.Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?");
if (dlg == System.Windows.Forms.DialogResult.Yes)
{
bs.RemoveCurrent();
//일반사용자는 바로 저장되도록 함
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.savecost));
if (curLevel < 5)
{
funcSave(false); //자동저장
}
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = ("excel|*.xls");
var dlg = sd.ShowDialog();
if (dlg == System.Windows.Forms.DialogResult.OK)
{
this.fpSpread1.SaveExcel(sd.FileName,
FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
| FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered
| FarPoint.Excel.ExcelSaveFlags.NoFormulas
| FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
FCOMMON.Util.MsgI("파일생성 완료\n\n" + sd.FileName);
}
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
//히스토리 데이터를 업데이트하고 첫번재 자료를 표시한다.
var drv = this.bs.Current as DataRowView;
if (drv == null)
{
this.label1.Text = "프로젝트가 선택되지 않았습니다";
return;
}
var dr = drv.Row as dsPRJ.EETGW_SaveCostRow;
this.label1.Text = string.Format("[{0}] {1}", dr.name, dr.memo);
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
util.MsgE("프로젝트로 등록하세요. 프로젝트 정보 중 [비용절감]을 체크하세요");
return;
//var newdr = this.dsMSSQL.EETGW_SaveCost.NewEETGW_SaveCostRow();
//newdr.wuid = FCOMMON.info.Login.no;
//newdr.wdate = DateTime.Now;
//newdr.pdate = DateTime.Now.ToString("yyyy-MM-dd");
//newdr.edate = DateTime.Now.ToString("yyyy-MM-dd");
//newdr.userManager = FCOMMON.info.Login.nameK;
//newdr.userprocess = FCOMMON.info.Login.process;
//newdr.costn = 0;
//newdr.costo = 0;
//newdr.cnt = 1;
//newdr.name = "Project Title";
//var f = new fSaveCostData(newdr);
//f.StartPosition = FormStartPosition.CenterScreen;
//var dlg = f.ShowDialog();
//if (dlg == System.Windows.Forms.DialogResult.OK)
//{
// this.dsMSSQL.EETGW_SaveCost.AddEETGW_SaveCostRow(newdr);
// try
// {
// ta.Update(newdr);
// }
// catch (Exception ex)
// {
// FCOMMON.Util.MsgE("Save Error\n" + ex.Message);
// }
//}
//else newdr.Delete();
}
private void btEdit_Click(object sender, EventArgs e)
{
funcEdit();
}
void funcEdit()
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.EETGW_SaveCostRow;
var f = new fSaveCostData(dr);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.savecost));
if (curLevel < 5)
{
funcSave(false); //자동저장
}
}
}
private void tbRequest_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btSearch.PerformClick();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
funcDelete();
}
private void toolStripButton2_Click_1(object sender, EventArgs e)
{
this.Close();
}
private void toolStripButton1_Click_1(object sender, EventArgs e)
{
refreshData();
}
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
funcEdit();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
var f = new SaveCost.fSaveCostReport();
f.Show();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
util.MsgE("프로젝트로 등록하세요. 프로젝트 정보 중 [비용절감]을 체크하세요");
return;
}
}
}

View File

@@ -1,325 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>259, 17</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
</metadata>
<metadata name="dsMSSQL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="btAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="btEdit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAGB3lYivyMDf/XiZt+Ts9ajT/Mbh/UlVa/P2+bLY/FRlfu3x9ZzN++Xy/rTR4ENL
XN7v/tTk8Jm/1enx96jL3uDo7ykxQz5FVb2JAP+8Bv/RV6HQ/FSr9qfR+jhllf///yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIugA/CBxIsKDACA4cUJAgIUCAARA9eJAg0EEEAhMyTiDA
0UMHDh4qTjBAkqSABh5BKhBIAUFJASdTekCw8oMElwZgovzoAQJNgTdzxuQJocDPDwEQ6MRAtIDRAwKT
nsSgIUPPAh02EID6YcCCBlQzYCiaVesDgV4jVB2LdcMGBhXOdl2QQIFdBQAGMNhb4QJaBAkSYC0wAIBh
AAv8fgAQAcFGjgQqSF7gwAJavHcPHHjw4MIFCzUNihYYEAA7
</value>
</data>
<data name="btDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG
QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX
bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII=
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII=
</value>
</data>
<data name="toolStripButton1.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>
<metadata name="cm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>325, 17</value>
</metadata>
<data name="autoToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJXG2JXa+ZLO5ChrlkCy4TZ1kiVvpCN0trvo9SN5xTd4lrfh7iR9zo3S+EGz7JDJ
4TaCromrvC9ymyV+0Dd3mTl1koe72YvN7LTj+9ne6N3g6v7+/0Cw2Stoh////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAInwA/CBzooaAHgQUHKvRQoUABCgUlHFT4IYMCBAsQIIBg
wcBEgh0WCBDAgcAFDAc+fvDQIUKHDgMeEHDQIIFKlgoMGgjQoAGDmwUOehhg4EACBhM+GlzKVOkEBgkO
GBggNOhCBhgCBPBYUEGHmwkCOCDwYMCAll8XHghwgQCHkQDSLjRgAcKDBwAAKNCwgaIHiR4oOKygkuDE
pRQTK6YYEAA7
</value>
</data>
<data name="resetToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfALnik2aXQv7+/dPut73llbfala3LmW6gSWqdQ2eYRGqaSLfck568iYrUQN7yzF6R
PLTXlYjUP8XwmYfQQLbYl4jRQGiaQsPumNbyu7nglNPzsLXYlf7+/lCHK////////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIlgA/CBzooaAHgQUHEvSgIEAABQUfHFTIwQECDAMwYDhg
oENCgRw8dBgAAECFBgsweJxYsAODDjApTIhAwCMHkCItGOxwgUCGlQQTeAgJsyhQg0iTGvzQ0qhND0IX
dtBwQcJKDxZsIhQpIcIECkVffmwpYUGDCiUheBQg1cCBAgU2QFDg4KZCDxIZOoQ48S7LpQoDCx4cEAA7
</value>
</data>
<data name="saveToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQAAJXD9Iasxm6MqnSn2lZtjVaRyEpXbYu767TX/2KZztvr/4Gy5KrT/3ut32+gzlFh
e+r0/0RNX9/u/9Ln+8Xg//n8/4e36CkxQz9GVkSCvKjL35/N/Je91K7T5bDS4////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQAAAAAACwAAAAAEAAQAAAIuQA/CBxIsKDACRwScggQwIGAhwIICBDYQcEEgwg+bNjw
QKCHCQgkQBgpQcKBCg0AEBCoAaRIkhIsVBigUiAHCgwkKNjJU8GAAx0/3NwIAMABCwsaDHCwIGgAChuK
HjiQdMDSAQYEPpWKtKqDBA6yfgiAwGhXpUsTJIgg0AGCo0nRfi1QgO0HAQyQNpCrtkAGDAIFbKi69GsC
un8FEohqdEFavxkyXAhMoPKDBwYMRIiAAcOFoAZDCwwIADs=
</value>
</data>
<data name="loadToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
R0lGODlhEAAQAIQfAJfL/OTs9HWVsW6aUqnT+6bnZldwkYiux7TZ/O3z+UlVa/P2+ZfTW36wWJDLV4m7
69nn78bi/qjL3qDP+VJhe4rAVa7S40NLXJ3bYJrA1ikxQz5FVdDU22OPRf///////yH/C05FVFNDQVBF
Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIwQA9CBxIcOCHgx4gWLAgIUOGAwcESBTgAaEFCAEGaBwQ
IGOABwYqerCQsYBJBho7JHgAUqCEDjAxYGBQgYHKBAsoCMzQIUIEmA6CdkCAIOfOBT5/MnBQYSgBozCj
SoVJ4KkCDx1MFhhKFEFVAhMCXM1aAANMoh2qTgh7AWvZmQ6igp0AIEDbDg0aLA06YC4AABA2eBjgYcHG
vmv/Akgg2IMBDgsSdJwcAEICDhoECjDAmQIFBQouXNiwQYPOgqgLBgQAOw==
</value>
</data>
<metadata name="fpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>658, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>393, 17</value>
</metadata>
<data name="button1.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>
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>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>499, 17</value>
</metadata>
<metadata name="tam.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>186, 17</value>
</metadata>
<metadata name="ta.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>596, 17</value>
</metadata>
</root>

View File

@@ -1,231 +0,0 @@

namespace FPJ0000.SaveCost
{
partial class fSaveCostReport
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();
this.fpSpread1_Sheet1 = new FarPoint.Win.Spread.SheetView();
this.progressBar2 = new System.Windows.Forms.ProgressBar();
this.ta = new FPJ0000.dsReportTableAdapters.JobReportDayTableAdapter();
this.btSave = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.dte = new System.Windows.Forms.DateTimePicker();
this.label2 = new System.Windows.Forms.Label();
this.dts = new System.Windows.Forms.DateTimePicker();
this.btRefresh = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.dsReport = new FPJ0000.dsReport();
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.checkBox2 = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).BeginInit();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dsReport)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
this.SuspendLayout();
//
// fpSpread1
//
this.fpSpread1.AccessibleDescription = "";
this.fpSpread1.Dock = System.Windows.Forms.DockStyle.Fill;
this.fpSpread1.Location = new System.Drawing.Point(0, 58);
this.fpSpread1.Name = "fpSpread1";
this.fpSpread1.Sheets.AddRange(new FarPoint.Win.Spread.SheetView[] {
this.fpSpread1_Sheet1});
this.fpSpread1.Size = new System.Drawing.Size(1114, 539);
this.fpSpread1.TabIndex = 7;
//
// fpSpread1_Sheet1
//
this.fpSpread1_Sheet1.Reset();
this.fpSpread1_Sheet1.SheetName = "Sheet1";
//
// progressBar2
//
this.progressBar2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.progressBar2.Location = new System.Drawing.Point(0, 597);
this.progressBar2.Name = "progressBar2";
this.progressBar2.Size = new System.Drawing.Size(1114, 23);
this.progressBar2.TabIndex = 8;
//
// ta
//
this.ta.ClearBeforeFill = true;
//
// btSave
//
this.btSave.Dock = System.Windows.Forms.DockStyle.Right;
this.btSave.Location = new System.Drawing.Point(959, 5);
this.btSave.Name = "btSave";
this.btSave.Size = new System.Drawing.Size(75, 48);
this.btSave.TabIndex = 12;
this.btSave.Text = "파일저장";
this.btSave.UseVisualStyleBackColor = true;
this.btSave.Click += new System.EventHandler(this.btSave_Click);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(261, 27);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(14, 12);
this.label3.TabIndex = 9;
this.label3.Text = "~";
//
// dte
//
this.dte.Location = new System.Drawing.Point(289, 23);
this.dte.Name = "dte";
this.dte.Size = new System.Drawing.Size(180, 21);
this.dte.TabIndex = 8;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 27);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 12);
this.label2.TabIndex = 7;
this.label2.Text = "검색기간";
//
// dts
//
this.dts.Location = new System.Drawing.Point(68, 23);
this.dts.Name = "dts";
this.dts.Size = new System.Drawing.Size(180, 21);
this.dts.TabIndex = 6;
//
// btRefresh
//
this.btRefresh.Dock = System.Windows.Forms.DockStyle.Right;
this.btRefresh.Location = new System.Drawing.Point(1034, 5);
this.btRefresh.Name = "btRefresh";
this.btRefresh.Size = new System.Drawing.Size(75, 48);
this.btRefresh.TabIndex = 2;
this.btRefresh.Text = "새로고침";
this.btRefresh.UseVisualStyleBackColor = true;
this.btRefresh.Click += new System.EventHandler(this.btRefresh_Click);
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200)))));
this.panel1.Controls.Add(this.checkBox2);
this.panel1.Controls.Add(this.checkBox1);
this.panel1.Controls.Add(this.btSave);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.dte);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.dts);
this.panel1.Controls.Add(this.btRefresh);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(1114, 58);
this.panel1.TabIndex = 6;
this.panel1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDoubleClick);
//
// dsReport
//
this.dsReport.DataSetName = "dsReport";
this.dsReport.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// bs
//
this.bs.DataMember = "JobReportDay";
this.bs.DataSource = this.dsReport;
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Checked = true;
this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBox1.Location = new System.Drawing.Point(493, 25);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(108, 16);
this.checkBox1.TabIndex = 13;
this.checkBox1.Text = "High Light 포함";
this.checkBox1.UseVisualStyleBackColor = true;
//
// checkBox2
//
this.checkBox2.AutoSize = true;
this.checkBox2.Checked = true;
this.checkBox2.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBox2.Location = new System.Drawing.Point(611, 25);
this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(96, 16);
this.checkBox2.TabIndex = 14;
this.checkBox2.Text = "Fan Out 포함";
this.checkBox2.UseVisualStyleBackColor = true;
//
// fSaveCostReport
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1114, 620);
this.Controls.Add(this.fpSpread1);
this.Controls.Add(this.progressBar2);
this.Controls.Add(this.panel1);
this.Name = "fSaveCostReport";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Cost Reduction Report";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.fEBoardReport_Load);
((System.ComponentModel.ISupportInitialize)(this.fpSpread1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.fpSpread1_Sheet1)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dsReport)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
this.ResumeLayout(false);
}
#endregion
private FarPoint.Win.Spread.FpSpread fpSpread1;
private FarPoint.Win.Spread.SheetView fpSpread1_Sheet1;
private System.Windows.Forms.ProgressBar progressBar2;
private dsReportTableAdapters.JobReportDayTableAdapter ta;
private System.Windows.Forms.Button btSave;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.DateTimePicker dte;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.DateTimePicker dts;
private System.Windows.Forms.Button btRefresh;
private System.Windows.Forms.Panel panel1;
private dsReport dsReport;
private System.Windows.Forms.BindingSource bs;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.CheckBox checkBox2;
}
}

View File

@@ -1,257 +0,0 @@
using FCOMMON;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FPJ0000.SaveCost
{
public partial class fSaveCostReport : fBase
{
public fSaveCostReport()
{
InitializeComponent();
}
private void fEBoardReport_Load(object sender, EventArgs e)
{
EnsureVisibleAndUsableSize();
//기본엑셀파일을 가져온다
this.Show();
Application.DoEvents();
dts.Value = new DateTime(DateTime.Now.Year, 1, 1);
dte.Value = new DateTime(DateTime.Now.Year, 12, 31);
//파일불러오기
LoadExcel();
}
void LoadExcel()
{
//파일불러오기
var fn = "CostReduction_" + DateTime.Now.Year.ToString("0000") + ".xlsx";
var fi = new System.IO.FileInfo(FCOMMON.Util.CurrentPath + fn);
this.fpSpread1.OpenExcel(fi.FullName);
}
int GetColIndex(string colname)
{
var sIndex = (int)'A';
var eIndex = (int)'Z';
var colsize = eIndex - sIndex + 1;
var collist = colname.ToCharArray();
var idx = 0;
for (int i = collist.Length; i > 0; i--)
{
var c = collist[i - 1];
idx += (int)(c - sIndex) + (colsize * (i - 1));
}
return idx;
}
string GetColName(int idx)
{
var sIndex = (int)'A';
var eIndex = (int)'Z';
var colsize = eIndex - sIndex + 1;
string colName = string.Empty;
while (true)
{
var mok = (int)(Math.Floor((idx * 1.0) / colsize));
if (mok > 0) colName += (char)(mok + sIndex);
var namoji = (idx % colsize);
if (namoji < colsize)
{
colName += (char)(namoji + sIndex);
break;
}
else idx = namoji;
}
return colName;
}
private void btRefresh_Click(object sender, EventArgs e)
{
//새로고침
//a2 에 날짜를 표시함.
var db = new dsPRJTableAdapters.EETGW_SaveCostTableAdapter();// EEEntities();
var sd = this.dts.Value.ToShortDateString();
var ed = this.dte.Value.ToShortDateString();
this.fpSpread1.ActiveSheetIndex = 1;
var = db.GetByDate(FCOMMON.info.Login.gcode,sd,ed).GroupBy(t => t.name);
var row = 6;
foreach (var item in )
{
var dr = item.FirstOrDefault();
this.fpSpread1.ActiveSheet.Cells["C" + row.ToString()].Value = dr.eepart;
this.fpSpread1.ActiveSheet.Cells["D" + row.ToString()].Value = dr.workgroup;
this.fpSpread1.ActiveSheet.Cells["E" + row.ToString()].Value = dr.process;
this.fpSpread1.ActiveSheet.Cells["F" + row.ToString()].Value = dr.site;
this.fpSpread1.ActiveSheet.Cells["G" + row.ToString()].Value = dr.category;
this.fpSpread1.ActiveSheet.Cells["H" + row.ToString()].Value = dr.subcate;
this.fpSpread1.ActiveSheet.Cells["I" + row.ToString()].Value = dr.name;
this.fpSpread1.ActiveSheet.Cells["J" + row.ToString()].Value = "--";
this.fpSpread1.ActiveSheet.Cells["K" + row.ToString()].Value = "--";
this.fpSpread1.ActiveSheet.Cells["L" + row.ToString()].Value = dr.part;
var str_fanout = dr.IsfanoutNull() ? "New" : ((bool)dr.fanout ? "Fan-Out" : "New");
this.fpSpread1.ActiveSheet.Cells["M" + row.ToString()].Value = str_fanout;
this.fpSpread1.ActiveSheet.Cells["N" + row.ToString()].Value = item.Sum(t => t.costo);
this.fpSpread1.ActiveSheet.Cells["O" + row.ToString()].Value = item.Sum(t => t.costn);
this.fpSpread1.ActiveSheet.Cells["AM" + row.ToString()].Value = dr.userManager;
//1월수량
var colZ = GetColIndex("Z");
for (int ii = 0; ii < 12; ii++)
{
var psd = new DateTime(2021,ii+1,1);
var ped = psd.AddMonths(1).AddDays(-1);
var datas = item.Where(t => t.pdate.CompareTo(psd.ToShortDateString()) >= 0 && t.pdate.CompareTo(ped.ToShortDateString()) <= 0);
var tCnt = datas.Count();
this.fpSpread1.ActiveSheet.Cells[row, colZ + ii].Value = tCnt;// datas.Count();
}
row += 1;
}
//var 분류목록 = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.분류) == false).OrderBy(t => t.분류).GroupBy(t => t.분류).ToList();
//var 담당목록 = db.vGroupUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.processs == "전자실" && string.IsNullOrEmpty(t.state) == true).OrderBy(t => t.name).GroupBy(t => t.name);
//var row = 1;
//var col = 1;
//var col0 = 1;
//foreach (var item in 분류목록)
//{
// var dr = item.FirstOrDefault();
// var cell = this.fpSpread1.Sheets[0].Cells[row, col + 0];
// cell.Value = dr.분류;
// cell.ColumnSpan = 2;
// cell.BackColor = Color.SkyBlue;
// cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
// cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
// cell = this.fpSpread1.Sheets[0].Cells[row + 1, col + 0];
// cell.Value = "건";
// cell.BackColor = Color.Khaki;
// cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
// cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
// cell = this.fpSpread1.Sheets[0].Cells[row + 1, col + 1];
// cell.Value = "시간";
// cell.BackColor = Color.Khaki;
// cell.HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
// cell.VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
// col += 2;
// col0 += 1;
//}
////마지막 열에는 비용절감항목을 추가한다.
//fpSpread1.Sheets[0].Cells[1, col].Value = "비용절감";
//fpSpread1.Sheets[0].Cells[1, col].BackColor = Color.WhiteSmoke;
//fpSpread1.Sheets[0].Cells[1, col].RowSpan = 2;
//fpSpread1.Sheets[0].Cells[1, col].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
//fpSpread1.Sheets[0].Cells[1, col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
//var MaxCol = col0;
//col = 0;
//row = 3;
//foreach (var item in 담당목록)
//{
// //var dr = item.KeY;
// this.fpSpread1.Sheets[0].Cells[row, col].Value = item.Key;
// //이 담당자의 횟수를 읽어온다
// for (int i = 1; i < MaxCol; i++)
// {
// var 분류명 = fpSpread1.Sheets[0].Cells[1, 1 + (i - 1) * 2].Value.ToString();
// var 분류데이터 = 기간자료.Where(t => t.uid.Contains(item.Key) && t.분류 == 분류명);
// var 건수 = 분류데이터.Count();
// var 시간 = 분류데이터.Sum(t => t.RepairTime);
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 1].Value = 건수;
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].Value = 시간;
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 1].Column.Width = 50;
// this.fpSpread1.Sheets[0].Cells[row, (i - 1) * 2 + 2].Column.Width = 70;
// }
// //이 담당자의 수리완료건의 비용절감비용을 가져온다
// var 절감비용 = 기간자료.Where(t => t.uid.Contains(item.Key) && t.분류 == "수리완료" && string.IsNullOrEmpty(t.수리완료일) == false && string.IsNullOrEmpty(t.외주업체) == true).Sum(t => t.CostReduction);
// this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].Value = 절감비용;
// this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].BackColor = Color.WhiteSmoke;
// this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;
// this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
// row += 1;
//}
//this.fpSpread1.Sheets[0].Cells[row, 0].Value = "합계";
//for (int i = 1; i < MaxCol; i++)
//{
// var colIdx = (i - 1) * 2;
// var c1 = (char)(65 + colIdx + 1);
// var c2 = (char)(65 + colIdx + 2);
// this.fpSpread1.Sheets[0].Cells[row, colIdx + 1].Formula = $"SUM({c1}4:{c1}" + row.ToString() + ")";
// this.fpSpread1.Sheets[0].Cells[row, colIdx + 2].Formula = $"SUM({c2}4:{c2}" + row.ToString() + ")";
//}
//var c3 = (char)(65 + MaxCol * 2 - 1);
//this.fpSpread1.Sheets[0].Cells[row, (MaxCol) * 2 - 1].Formula = $"SUM({c3}4:{c3}" + row.ToString() + ")";
//this.fpSpread1.Sheets[0].Cells["A1"].Value = "Performance";
//this.fpSpread1.Sheets[0].Cells["A1"].ColumnSpan = MaxCol * 2;
//this.fpSpread1.Sheets[0].Cells["A2"].Value = "성명";
//this.fpSpread1.Sheets[0].Cells["A2"].RowSpan = 2;
//this.fpSpread1.Sheets[0].Cells[$"A2:A{row}"].BackColor = Color.WhiteSmoke;
////합계필드 색상변경
//this.fpSpread1.Sheets[0].Cells[$"A{row + 1}:{c3}{row + 1}"].BackColor = Color.WhiteSmoke;
////this.fpSpread1.Sheets[0].Cells[$"A{row + 1}:{c3}{row + 1}"].Border =
//// new FarPoint.Win.ComplexBorder(
//// new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.MediumLine));
////모든열을 중앙정렬한다
this.fpSpread1.ActiveSheetIndex = 0;
this.fpSpread1.Invalidate();
}
private void btSave_Click(object sender, EventArgs e)
{
//파일저장
var sd = new SaveFileDialog();
sd.Filter = "excel|*.xls";
if (sd.ShowDialog() == DialogResult.OK)
{
this.fpSpread1.SaveExcel(sd.FileName);
}
}
private void panel1_MouseDoubleClick(object sender, MouseEventArgs e)
{
LoadExcel();
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -5,35 +5,5 @@
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings>
<TableUISetting Name="EETGW_SaveCost">
<ColumnUISettings>
<ColumnUISetting Name="category">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="workgroup">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="site">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="subcate">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="eepart">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
</TableUISettings>
<TableUISettings />
</DataSetUISetting>

View File

@@ -1270,324 +1270,6 @@ SELECT idx, gcode, pdate, uid, description, description2, share, wuid, wdate FRO
</Mappings>
<Sources />
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="EETGW_SaveCostTableAdapter" GeneratorDataComponentClassName="EETGW_SaveCostTableAdapter" Name="EETGW_SaveCost" UserDataComponentName="EETGW_SaveCostTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_SaveCost" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="Fill" GenerateMethods="Both" GenerateShortCommands="true" 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">
<DeleteCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>DELETE FROM [EETGW_SaveCost] WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_isdel = 1 AND [isdel] IS NULL) OR ([isdel] = @Original_isdel)) AND ((@IsNull_asset = 1 AND [asset] IS NULL) OR ([asset] = @Original_asset)) AND ((@IsNull_process = 1 AND [process] IS NULL) OR ([process] = @Original_process)) AND ((@IsNull_part = 1 AND [part] IS NULL) OR ([part] = @Original_part)) AND ((@IsNull_pdate = 1 AND [pdate] IS NULL) OR ([pdate] = @Original_pdate)) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name)) AND ((@IsNull_userManager = 1 AND [userManager] IS NULL) OR ([userManager] = @Original_userManager)) AND ((@IsNull_usermain = 1 AND [usermain] IS NULL) OR ([usermain] = @Original_usermain)) AND ((@IsNull_reqstaff = 1 AND [reqstaff] IS NULL) OR ([reqstaff] = @Original_reqstaff)) AND ((@IsNull_costo = 1 AND [costo] IS NULL) OR ([costo] = @Original_costo)) AND ((@IsNull_costn = 1 AND [costn] IS NULL) OR ([costn] = @Original_costn)) AND ((@IsNull_cnt = 1 AND [cnt] IS NULL) OR ([cnt] = @Original_cnt)) AND ((@IsNull_edate = 1 AND [edate] IS NULL) OR ([edate] = @Original_edate)) AND ((@IsNull_progress = 1 AND [progress] IS NULL) OR ([progress] = @Original_progress)) AND ((@IsNull_memo = 1 AND [memo] IS NULL) OR ([memo] = @Original_memo)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate) AND ((@IsNull_orderno = 1 AND [orderno] IS NULL) OR ([orderno] = @Original_orderno)) AND ((@IsNull_userprocess = 1 AND [userprocess] IS NULL) OR ([userprocess] = @Original_userprocess)) AND ((@IsNull_category = 1 AND [category] IS NULL) OR ([category] = @Original_category)) AND ((@IsNull_status = 1 AND [status] IS NULL) OR ([status] = @Original_status)) AND ((@IsNull_workgroup = 1 AND [workgroup] IS NULL) OR ([workgroup] = @Original_workgroup)) AND ((@IsNull_site = 1 AND [site] IS NULL) OR ([site] = @Original_site)) AND ((@IsNull_subcate = 1 AND [subcate] IS NULL) OR ([subcate] = @Original_subcate)) AND ((@IsNull_eepart = 1 AND [eepart] IS NULL) OR ([eepart] = @Original_eepart)) AND ((@IsNull_fanout = 1 AND [fanout] IS NULL) OR ([fanout] = @Original_fanout)) AND ((@IsNull_weekly = 1 AND [weekly] IS NULL) OR ([weekly] = @Original_weekly)) AND ((@IsNull_bef_time = 1 AND [bef_time] IS NULL) OR ([bef_time] = @Original_bef_time)) AND ((@IsNull_aft_time = 1 AND [aft_time] IS NULL) OR ([aft_time] = @Original_aft_time)) AND ((@IsNull_sfi = 1 AND [sfi] IS NULL) OR ([sfi] = @Original_sfi)) AND ((@IsNull_sfi_type = 1 AND [sfi_type] IS NULL) OR ([sfi_type] = @Original_sfi_type)) AND ((@IsNull_sfi_savetime = 1 AND [sfi_savetime] IS NULL) OR ([sfi_savetime] = @Original_sfi_savetime)) AND ((@IsNull_sfi_savecount = 1 AND [sfi_savecount] IS NULL) OR ([sfi_savecount] = @Original_sfi_savecount)) AND ((@IsNull_sfi_shiftcount = 1 AND [sfi_shiftcount] IS NULL) OR ([sfi_shiftcount] = @Original_sfi_shiftcount)) AND ((@IsNull_sfic = 1 AND [sfic] IS NULL) OR ([sfic] = @Original_sfic)))</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_isdel" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_isdel" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_asset" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_asset" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_process" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_process" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_part" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_part" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_pdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_name" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_name" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_userManager" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_userManager" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_usermain" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_usermain" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_reqstaff" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_reqstaff" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_costo" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_costo" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_costn" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_costn" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_memo" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_memo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_orderno" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_orderno" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_userprocess" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_userprocess" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_category" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_category" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_status" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_workgroup" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_workgroup" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_site" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_site" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_subcate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_subcate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_eepart" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_eepart" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_fanout" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_fanout" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_weekly" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_weekly" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_bef_time" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_bef_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_aft_time" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_aft_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_sfi_type" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_savetime" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_savetime" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_savecount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_savecount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_shiftcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_shiftcount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfic" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfic" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="false" SourceVersion="Original" />
</Parameters>
</DbCommand>
</DeleteCommand>
<InsertCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>INSERT INTO [EETGW_SaveCost] ([gcode], [isdel], [asset], [process], [part], [pdate], [name], [userManager], [usermain], [reqstaff], [costo], [costn], [cnt], [remark_req], [remark_ans], [edate], [progress], [memo], [wuid], [wdate], [orderno], [userprocess], [category], [status], [workgroup], [site], [subcate], [eepart], [fanout], [weekly], [bef_time], [aft_time], [sfi], [sfi_type], [sfi_savetime], [sfi_savecount], [sfi_shiftcount], [sfic]) VALUES (@gcode, @isdel, @asset, @process, @part, @pdate, @name, @userManager, @usermain, @reqstaff, @costo, @costn, @cnt, @remark_req, @remark_ans, @edate, @progress, @memo, @wuid, @wdate, @orderno, @userprocess, @category, @status, @workgroup, @site, @subcate, @eepart, @fanout, @weekly, @bef_time, @aft_time, @sfi, @sfi_type, @sfi_savetime, @sfi_savecount, @sfi_shiftcount, @sfic);
SELECT idx, gcode, isdel, asset, process, part, pdate, name, userManager, usermain, reqstaff, costo, costn, cnt, remark_req, remark_ans, edate, progress, memo, wuid, wdate, orderno, userprocess, category, status, workgroup, site, subcate, eepart, fanout, weekly, bef_time, aft_time, sfi, sfi_type, sfi_savetime, sfi_savecount, sfi_shiftcount, sfic FROM EETGW_SaveCost WITH (nolock) WHERE (idx = SCOPE_IDENTITY()) ORDER BY pdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@isdel" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@asset" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@process" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@part" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@userManager" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@usermain" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@reqstaff" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@costo" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@costn" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@remark_req" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="remark_req" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@remark_ans" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="remark_ans" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@memo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@orderno" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@userprocess" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@category" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@status" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@workgroup" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@site" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@subcate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@eepart" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@fanout" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@weekly" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@bef_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@aft_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@sfi_type" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_savetime" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_savecount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_shiftcount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfic" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</InsertCommand>
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>SELECT idx, gcode, isdel, asset, process, part, pdate, name, userManager, usermain, reqstaff, costo, costn, cnt, remark_req, remark_ans, edate, progress, memo, wuid, wdate, orderno, userprocess,
category, status, workgroup, site, subcate, eepart, fanout, weekly, bef_time, aft_time, sfi, sfi_type, sfi_savetime, sfi_savecount, sfi_shiftcount, sfic
FROM EETGW_SaveCost WITH (nolock)
WHERE (gcode = @gcode)
ORDER BY pdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.EETGW_SaveCost" 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>
<UpdateCommand>
<DbCommand CommandType="Text" ModifiedByUser="false">
<CommandText>UPDATE [EETGW_SaveCost] SET [gcode] = @gcode, [isdel] = @isdel, [asset] = @asset, [process] = @process, [part] = @part, [pdate] = @pdate, [name] = @name, [userManager] = @userManager, [usermain] = @usermain, [reqstaff] = @reqstaff, [costo] = @costo, [costn] = @costn, [cnt] = @cnt, [remark_req] = @remark_req, [remark_ans] = @remark_ans, [edate] = @edate, [progress] = @progress, [memo] = @memo, [wuid] = @wuid, [wdate] = @wdate, [orderno] = @orderno, [userprocess] = @userprocess, [category] = @category, [status] = @status, [workgroup] = @workgroup, [site] = @site, [subcate] = @subcate, [eepart] = @eepart, [fanout] = @fanout, [weekly] = @weekly, [bef_time] = @bef_time, [aft_time] = @aft_time, [sfi] = @sfi, [sfi_type] = @sfi_type, [sfi_savetime] = @sfi_savetime, [sfi_savecount] = @sfi_savecount, [sfi_shiftcount] = @sfi_shiftcount, [sfic] = @sfic WHERE (([idx] = @Original_idx) AND ([gcode] = @Original_gcode) AND ((@IsNull_isdel = 1 AND [isdel] IS NULL) OR ([isdel] = @Original_isdel)) AND ((@IsNull_asset = 1 AND [asset] IS NULL) OR ([asset] = @Original_asset)) AND ((@IsNull_process = 1 AND [process] IS NULL) OR ([process] = @Original_process)) AND ((@IsNull_part = 1 AND [part] IS NULL) OR ([part] = @Original_part)) AND ((@IsNull_pdate = 1 AND [pdate] IS NULL) OR ([pdate] = @Original_pdate)) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name)) AND ((@IsNull_userManager = 1 AND [userManager] IS NULL) OR ([userManager] = @Original_userManager)) AND ((@IsNull_usermain = 1 AND [usermain] IS NULL) OR ([usermain] = @Original_usermain)) AND ((@IsNull_reqstaff = 1 AND [reqstaff] IS NULL) OR ([reqstaff] = @Original_reqstaff)) AND ((@IsNull_costo = 1 AND [costo] IS NULL) OR ([costo] = @Original_costo)) AND ((@IsNull_costn = 1 AND [costn] IS NULL) OR ([costn] = @Original_costn)) AND ((@IsNull_cnt = 1 AND [cnt] IS NULL) OR ([cnt] = @Original_cnt)) AND ((@IsNull_edate = 1 AND [edate] IS NULL) OR ([edate] = @Original_edate)) AND ((@IsNull_progress = 1 AND [progress] IS NULL) OR ([progress] = @Original_progress)) AND ((@IsNull_memo = 1 AND [memo] IS NULL) OR ([memo] = @Original_memo)) AND ([wuid] = @Original_wuid) AND ([wdate] = @Original_wdate) AND ((@IsNull_orderno = 1 AND [orderno] IS NULL) OR ([orderno] = @Original_orderno)) AND ((@IsNull_userprocess = 1 AND [userprocess] IS NULL) OR ([userprocess] = @Original_userprocess)) AND ((@IsNull_category = 1 AND [category] IS NULL) OR ([category] = @Original_category)) AND ((@IsNull_status = 1 AND [status] IS NULL) OR ([status] = @Original_status)) AND ((@IsNull_workgroup = 1 AND [workgroup] IS NULL) OR ([workgroup] = @Original_workgroup)) AND ((@IsNull_site = 1 AND [site] IS NULL) OR ([site] = @Original_site)) AND ((@IsNull_subcate = 1 AND [subcate] IS NULL) OR ([subcate] = @Original_subcate)) AND ((@IsNull_eepart = 1 AND [eepart] IS NULL) OR ([eepart] = @Original_eepart)) AND ((@IsNull_fanout = 1 AND [fanout] IS NULL) OR ([fanout] = @Original_fanout)) AND ((@IsNull_weekly = 1 AND [weekly] IS NULL) OR ([weekly] = @Original_weekly)) AND ((@IsNull_bef_time = 1 AND [bef_time] IS NULL) OR ([bef_time] = @Original_bef_time)) AND ((@IsNull_aft_time = 1 AND [aft_time] IS NULL) OR ([aft_time] = @Original_aft_time)) AND ((@IsNull_sfi = 1 AND [sfi] IS NULL) OR ([sfi] = @Original_sfi)) AND ((@IsNull_sfi_type = 1 AND [sfi_type] IS NULL) OR ([sfi_type] = @Original_sfi_type)) AND ((@IsNull_sfi_savetime = 1 AND [sfi_savetime] IS NULL) OR ([sfi_savetime] = @Original_sfi_savetime)) AND ((@IsNull_sfi_savecount = 1 AND [sfi_savecount] IS NULL) OR ([sfi_savecount] = @Original_sfi_savecount)) AND ((@IsNull_sfi_shiftcount = 1 AND [sfi_shiftcount] IS NULL) OR ([sfi_shiftcount] = @Original_sfi_shiftcount)) AND ((@IsNull_sfic = 1 AND [sfic] IS NULL) OR ([sfic] = @Original_sfic)));
SELECT idx, gcode, isdel, asset, process, part, pdate, name, userManager, usermain, reqstaff, costo, costn, cnt, remark_req, remark_ans, edate, progress, memo, wuid, wdate, orderno, userprocess, category, status, workgroup, site, subcate, eepart, fanout, weekly, bef_time, aft_time, sfi, sfi_type, sfi_savetime, sfi_savecount, sfi_shiftcount, sfic FROM EETGW_SaveCost WITH (nolock) WHERE (idx = @idx) ORDER BY pdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@isdel" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@asset" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@process" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@part" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@name" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@userManager" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@usermain" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@reqstaff" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@costo" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@costn" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@remark_req" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="remark_req" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@remark_ans" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="remark_ans" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@memo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@orderno" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@userprocess" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@category" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@status" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@workgroup" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@site" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@subcate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@eepart" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@fanout" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@weekly" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@bef_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@aft_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@sfi_type" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_savetime" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_savecount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfi_shiftcount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@sfic" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_idx" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_gcode" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="gcode" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_isdel" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_isdel" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="isdel" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_asset" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_asset" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="asset" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_process" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_process" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="process" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_part" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_part" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="part" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_pdate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_pdate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_name" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_name" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="name" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_userManager" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_userManager" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="userManager" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_usermain" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_usermain" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="usermain" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_reqstaff" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_reqstaff" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="reqstaff" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_costo" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_costo" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costo" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_costn" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_costn" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="costn" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_cnt" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="cnt" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_edate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_edate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="edate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@Original_progress" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="progress" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_memo" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_memo" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="memo" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_wuid" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="wuid" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="DateTime" Direction="Input" ParameterName="@Original_wdate" Precision="0" ProviderType="SmallDateTime" Scale="0" Size="0" SourceColumn="wdate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_orderno" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_orderno" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="orderno" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_userprocess" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="String" Direction="Input" ParameterName="@Original_userprocess" Precision="0" ProviderType="NVarChar" Scale="0" Size="0" SourceColumn="userprocess" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_category" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_category" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="category" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_status" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_status" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="status" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_workgroup" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_workgroup" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="workgroup" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_site" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_site" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="site" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_subcate" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_subcate" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="subcate" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_eepart" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_eepart" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="eepart" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_fanout" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_fanout" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="fanout" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_weekly" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Boolean" Direction="Input" ParameterName="@Original_weekly" Precision="0" ProviderType="Bit" Scale="0" Size="0" SourceColumn="weekly" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_bef_time" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_bef_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="bef_time" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_aft_time" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_aft_time" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="aft_time" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_type" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="AnsiString" Direction="Input" ParameterName="@Original_sfi_type" Precision="0" ProviderType="VarChar" Scale="0" Size="0" SourceColumn="sfi_type" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_savetime" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_savetime" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savetime" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_savecount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_savecount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_savecount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfi_shiftcount" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfi_shiftcount" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfi_shiftcount" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Int32" Direction="Input" ParameterName="@IsNull_sfic" Precision="0" ProviderType="Int" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="true" SourceVersion="Original" />
<Parameter AllowDbNull="true" AutogeneratedName="" DataSourceName="" DbType="Double" Direction="Input" ParameterName="@Original_sfic" Precision="0" ProviderType="Float" Scale="0" Size="0" SourceColumn="sfic" SourceColumnNullMapping="false" SourceVersion="Original" />
<Parameter AllowDbNull="false" AutogeneratedName="idx" ColumnName="idx" DataSourceName="" DataTypeServer="int" DbType="Int32" Direction="Input" ParameterName="@idx" Precision="0" ProviderType="Int" Scale="0" Size="4" SourceColumn="idx" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</UpdateCommand>
</DbSource>
</MainSource>
<Mappings>
<Mapping SourceColumn="idx" DataSetColumn="idx" />
<Mapping SourceColumn="gcode" DataSetColumn="gcode" />
<Mapping SourceColumn="isdel" DataSetColumn="isdel" />
<Mapping SourceColumn="asset" DataSetColumn="asset" />
<Mapping SourceColumn="process" DataSetColumn="process" />
<Mapping SourceColumn="part" DataSetColumn="part" />
<Mapping SourceColumn="pdate" DataSetColumn="pdate" />
<Mapping SourceColumn="name" DataSetColumn="name" />
<Mapping SourceColumn="userManager" DataSetColumn="userManager" />
<Mapping SourceColumn="usermain" DataSetColumn="usermain" />
<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="remark_ans" DataSetColumn="remark_ans" />
<Mapping SourceColumn="edate" DataSetColumn="edate" />
<Mapping SourceColumn="memo" DataSetColumn="memo" />
<Mapping SourceColumn="wuid" DataSetColumn="wuid" />
<Mapping SourceColumn="wdate" DataSetColumn="wdate" />
<Mapping SourceColumn="orderno" DataSetColumn="orderno" />
<Mapping SourceColumn="userprocess" DataSetColumn="userprocess" />
<Mapping SourceColumn="progress" DataSetColumn="progress" />
<Mapping SourceColumn="category" DataSetColumn="category" />
<Mapping SourceColumn="status" DataSetColumn="status" />
<Mapping SourceColumn="workgroup" DataSetColumn="workgroup" />
<Mapping SourceColumn="site" DataSetColumn="site" />
<Mapping SourceColumn="subcate" DataSetColumn="subcate" />
<Mapping SourceColumn="eepart" DataSetColumn="eepart" />
<Mapping SourceColumn="fanout" DataSetColumn="fanout" />
<Mapping SourceColumn="weekly" DataSetColumn="weekly" />
<Mapping SourceColumn="bef_time" DataSetColumn="bef_time" />
<Mapping SourceColumn="aft_time" DataSetColumn="aft_time" />
<Mapping SourceColumn="sfi" DataSetColumn="sfi" />
<Mapping SourceColumn="sfi_type" DataSetColumn="sfi_type" />
<Mapping SourceColumn="sfi_savetime" DataSetColumn="sfi_savetime" />
<Mapping SourceColumn="sfi_savecount" DataSetColumn="sfi_savecount" />
<Mapping SourceColumn="sfi_shiftcount" DataSetColumn="sfi_shiftcount" />
<Mapping SourceColumn="sfic" DataSetColumn="sfic" />
</Mappings>
<Sources>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.EETGW_SaveCost" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillByDate" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetByDate" GeneratorSourceName="FillByDate" GetMethodModifier="Public" GetMethodName="GetByDate" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetByDate" UserSourceName="FillByDate">
<SelectCommand>
<DbCommand CommandType="Text" ModifiedByUser="true">
<CommandText>SELECT idx, gcode, isdel, asset, process, part, pdate, name, userManager, usermain, reqstaff, costo, costn, cnt, remark_req, remark_ans, edate, progress, memo, wuid, wdate, orderno, userprocess,
category, status, workgroup, site, subcate, eepart, fanout, weekly, bef_time, aft_time, sfi, sfi_type, sfi_savetime, sfi_savecount, sfi_shiftcount, sfic
FROM EETGW_SaveCost WITH (nolock)
where gcode = @gcode
and pdate between @sd and @ed
ORDER BY pdate</CommandText>
<Parameters>
<Parameter AllowDbNull="false" AutogeneratedName="gcode" ColumnName="gcode" DataSourceName="EE.dbo.EETGW_SaveCost" 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="sd" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_SaveCost" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@sd" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
<Parameter AllowDbNull="true" AutogeneratedName="ed" ColumnName="pdate" DataSourceName="EE.dbo.EETGW_SaveCost" DataTypeServer="varchar(10)" DbType="AnsiString" Direction="Input" ParameterName="@ed" Precision="0" ProviderType="VarChar" Scale="0" Size="10" SourceColumn="pdate" SourceColumnNullMapping="false" SourceVersion="Current" />
</Parameters>
</DbCommand>
</SelectCommand>
</DbSource>
</Sources>
</TableAdapter>
<TableAdapter BaseClass="System.ComponentModel.Component" DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" DataAccessorName="ProjectPartStatusTableAdapter" GeneratorDataComponentClassName="ProjectPartStatusTableAdapter" Name="ProjectPartStatus" UserDataComponentName="ProjectPartStatusTableAdapter">
<MainSource>
<DbSource ConnectionRef="gwcs (Settings)" DbObjectName="EE.dbo.vProjectPartPurchase" DbObjectType="View" 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">
@@ -4070,190 +3752,6 @@ WHERE (gcode = @gcode) AND (cate = @cate) AND (uid = @uit) AND (sdate = @chkdt)
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EETGW_SaveCost" msprop:Generator_UserTableName="EETGW_SaveCost" msprop:Generator_RowEvArgName="EETGW_SaveCostRowChangeEvent" msprop:Generator_TableVarName="tableEETGW_SaveCost" msprop:Generator_TablePropName="EETGW_SaveCost" msprop:Generator_RowDeletingName="EETGW_SaveCostRowDeleting" msprop:Generator_RowChangingName="EETGW_SaveCostRowChanging" msprop:Generator_RowDeletedName="EETGW_SaveCostRowDeleted" msprop:Generator_RowEvHandlerName="EETGW_SaveCostRowChangeEventHandler" msprop:Generator_TableClassName="EETGW_SaveCostDataTable" msprop:Generator_RowChangedName="EETGW_SaveCostRowChanged" msprop:Generator_RowClassName="EETGW_SaveCostRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idx" 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="gcode" msprop:Generator_ColumnVarNameInTable="columngcode" msprop:Generator_ColumnPropNameInRow="gcode" msprop:Generator_ColumnPropNameInTable="gcodeColumn" msprop:Generator_UserColumnName="gcode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="isdel" msprop:Generator_ColumnVarNameInTable="columnisdel" msprop:Generator_ColumnPropNameInRow="isdel" msprop:Generator_ColumnPropNameInTable="isdelColumn" msprop:Generator_UserColumnName="isdel" type="xs:boolean" minOccurs="0" />
<xs:element name="asset" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="asset" msprop:Generator_ColumnVarNameInTable="columnasset" msprop:Generator_ColumnPropNameInTable="assetColumn" msprop:Generator_UserColumnName="asset" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="process" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="process" msprop:Generator_ColumnVarNameInTable="columnprocess" 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:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="part" msprop:Generator_ColumnVarNameInTable="columnpart" 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:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="pdate" msprop:Generator_ColumnVarNameInTable="columnpdate" 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="name" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" 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="userManager" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="userManager" msprop:Generator_ColumnVarNameInTable="columnuserManager" msprop:Generator_ColumnPropNameInTable="userManagerColumn" msprop:Generator_UserColumnName="userManager" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="usermain" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="usermain" msprop:Generator_ColumnVarNameInTable="columnusermain" msprop:Generator_ColumnPropNameInTable="usermainColumn" msprop:Generator_UserColumnName="usermain" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="reqstaff" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="reqstaff" msprop:Generator_ColumnVarNameInTable="columnreqstaff" 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:nullValue="0" msprop:Generator_ColumnPropNameInRow="costo" msprop:Generator_ColumnVarNameInTable="columncosto" msprop:Generator_ColumnPropNameInTable="costoColumn" msprop:Generator_UserColumnName="costo" type="xs:double" minOccurs="0" />
<xs:element name="costn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="costn" msprop:Generator_ColumnVarNameInTable="columncostn" msprop:Generator_ColumnPropNameInTable="costnColumn" msprop:Generator_UserColumnName="costn" type="xs:double" minOccurs="0" />
<xs:element name="coste" msdata:ReadOnly="true" msdata:Expression="(costo-costn)*cnt" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="coste" msprop:Generator_ColumnVarNameInTable="columncoste" msprop:Generator_ColumnPropNameInTable="costeColumn" msprop:Generator_UserColumnName="coste" type="xs:double" minOccurs="0" />
<xs:element name="cnt" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="cnt" msprop:Generator_ColumnVarNameInTable="columncnt" msprop:Generator_ColumnPropNameInTable="cntColumn" msprop:Generator_UserColumnName="cnt" type="xs:int" minOccurs="0" />
<xs:element name="remark_req" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="remark_req" msprop:Generator_ColumnVarNameInTable="columnremark_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="remark_ans" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="remark_ans" msprop:Generator_ColumnVarNameInTable="columnremark_ans" msprop:Generator_ColumnPropNameInTable="remark_ansColumn" msprop:Generator_UserColumnName="remark_ans" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="2147483647" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="edate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="edate" msprop:Generator_ColumnVarNameInTable="columnedate" 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="memo" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="memo" msprop:Generator_ColumnVarNameInTable="columnmemo" 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:element name="wuid" msprop:Generator_ColumnVarNameInTable="columnwuid" msprop:Generator_ColumnPropNameInRow="wuid" msprop:Generator_ColumnPropNameInTable="wuidColumn" msprop:Generator_UserColumnName="wuid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="wdate" msprop:Generator_ColumnVarNameInTable="columnwdate" msprop:Generator_ColumnPropNameInRow="wdate" msprop:Generator_ColumnPropNameInTable="wdateColumn" msprop:Generator_UserColumnName="wdate" type="xs:dateTime" />
<xs:element name="orderno" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="orderno" msprop:Generator_ColumnVarNameInTable="columnorderno" 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="userprocess" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="userprocess" msprop:Generator_ColumnVarNameInTable="columnuserprocess" msprop:Generator_ColumnPropNameInTable="userprocessColumn" msprop:Generator_UserColumnName="userprocess" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="progress" msprop:Generator_ColumnVarNameInTable="columnprogress" msprop:Generator_ColumnPropNameInRow="progress" msprop:Generator_ColumnPropNameInTable="progressColumn" msprop:Generator_UserColumnName="progress" type="xs:int" minOccurs="0" />
<xs:element name="category" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="category" msprop:Generator_ColumnVarNameInTable="columncategory" msprop:Generator_ColumnPropNameInTable="categoryColumn" msprop:Generator_UserColumnName="category" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="status" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="status" msprop:Generator_ColumnVarNameInTable="columnstatus" 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="workgroup" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="workgroup" msprop:Generator_ColumnVarNameInTable="columnworkgroup" msprop:Generator_ColumnPropNameInTable="workgroupColumn" msprop:Generator_UserColumnName="workgroup" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="site" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="site" msprop:Generator_ColumnVarNameInTable="columnsite" msprop:Generator_ColumnPropNameInTable="siteColumn" msprop:Generator_UserColumnName="site" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="subcate" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="subcate" msprop:Generator_ColumnVarNameInTable="columnsubcate" msprop:Generator_ColumnPropNameInTable="subcateColumn" msprop:Generator_UserColumnName="subcate" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="eepart" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="eepart" msprop:Generator_ColumnVarNameInTable="columneepart" msprop:Generator_ColumnPropNameInTable="eepartColumn" msprop:Generator_UserColumnName="eepart" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fanout" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="fanout" msprop:Generator_ColumnVarNameInTable="columnfanout" msprop:Generator_ColumnPropNameInTable="fanoutColumn" msprop:Generator_UserColumnName="fanout" type="xs:boolean" minOccurs="0" />
<xs:element name="weekly" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="weekly" msprop:Generator_ColumnVarNameInTable="columnweekly" msprop:Generator_ColumnPropNameInTable="weeklyColumn" msprop:Generator_UserColumnName="weekly" type="xs:boolean" minOccurs="0" />
<xs:element name="bef_time" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="bef_time" msprop:Generator_ColumnVarNameInTable="columnbef_time" msprop:Generator_ColumnPropNameInTable="bef_timeColumn" msprop:Generator_UserColumnName="bef_time" type="xs:double" minOccurs="0" />
<xs:element name="aft_time" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="aft_time" msprop:Generator_ColumnVarNameInTable="columnaft_time" msprop:Generator_ColumnPropNameInTable="aft_timeColumn" msprop:Generator_UserColumnName="aft_time" type="xs:double" minOccurs="0" />
<xs:element name="sfi" msprop:nullValue="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="sfi_type" msprop:Generator_ColumnVarNameInTable="columnsfi_type" msprop:Generator_ColumnPropNameInRow="sfi_type" msprop:Generator_ColumnPropNameInTable="sfi_typeColumn" msprop:Generator_UserColumnName="sfi_type" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="sfi_savetime" msprop:Generator_ColumnVarNameInTable="columnsfi_savetime" msprop:Generator_ColumnPropNameInRow="sfi_savetime" msprop:Generator_ColumnPropNameInTable="sfi_savetimeColumn" msprop:Generator_UserColumnName="sfi_savetime" type="xs:double" minOccurs="0" />
<xs:element name="sfi_savecount" msprop:Generator_ColumnVarNameInTable="columnsfi_savecount" msprop:Generator_ColumnPropNameInRow="sfi_savecount" msprop:Generator_ColumnPropNameInTable="sfi_savecountColumn" msprop:Generator_UserColumnName="sfi_savecount" type="xs:double" minOccurs="0" />
<xs:element name="sfi_shiftcount" msprop:Generator_ColumnVarNameInTable="columnsfi_shiftcount" msprop:Generator_ColumnPropNameInRow="sfi_shiftcount" msprop:Generator_ColumnPropNameInTable="sfi_shiftcountColumn" msprop:Generator_UserColumnName="sfi_shiftcount" type="xs:double" minOccurs="0" />
<xs:element name="sfic" msprop:Generator_ColumnVarNameInTable="columnsfic" msprop:Generator_ColumnPropNameInRow="sfic" msprop:Generator_ColumnPropNameInTable="sficColumn" msprop:Generator_UserColumnName="sfic" type="xs:double" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ProjectPartStatus" msprop:Generator_UserTableName="ProjectPartStatus" msprop:Generator_RowEvArgName="ProjectPartStatusRowChangeEvent" msprop:Generator_TableVarName="tableProjectPartStatus" msprop:Generator_TablePropName="ProjectPartStatus" msprop:Generator_RowDeletingName="ProjectPartStatusRowDeleting" msprop:Generator_RowChangingName="ProjectPartStatusRowChanging" msprop:Generator_RowDeletedName="ProjectPartStatusRowDeleted" msprop:Generator_RowEvHandlerName="ProjectPartStatusRowChangeEventHandler" msprop:Generator_TableClassName="ProjectPartStatusDataTable" msprop:Generator_RowChangedName="ProjectPartStatusRowChanged" msprop:Generator_RowClassName="ProjectPartStatusRow">
<xs:complexType>
<xs:sequence>
@@ -5246,10 +4744,6 @@ WHERE (gcode = @gcode) AND (cate = @cate) AND (uid = @uit) AND (sdate = @chkdt)
<xs:selector xpath=".//mstns:SCTable" />
<xs:field xpath="mstns:idx" />
</xs:unique>
<xs:unique name="EETGW_SaveCost_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:EETGW_SaveCost" />
<xs:field xpath="mstns:idx" />
</xs:unique>
<xs:unique name="ProjectPartStatus_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:ProjectPartStatus" />
<xs:field xpath="mstns:idx" />

View File

@@ -4,31 +4,30 @@
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="0" ViewPortY="19" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="282" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:Projects" ZOrder="1" X="386" Y="651" Height="381" Width="261" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectsIOMap" ZOrder="17" X="366" Y="70" Height="229" Width="231" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:ProjectsMailList" ZOrder="23" X="667" Y="70" Height="248" Width="237" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:ProjectsPart" ZOrder="13" X="973" Y="68" Height="381" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="275" />
<Shape ID="DesignTable:ProjectsHistory" ZOrder="22" X="1881" Y="31" Height="267" Width="251" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:SPMaster" ZOrder="18" X="365" Y="305" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_Note" ZOrder="20" X="810" Y="455" Height="248" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:EETGW_SaveCost" ZOrder="7" X="75" Y="490" Height="324" Width="277" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectPartStatus" ZOrder="14" X="1081" Y="466" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_ProjecthistoryD" ZOrder="19" X="680" Y="203" Height="248" Width="283" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:EETGW_ProjectToDo" ZOrder="16" X="89" Y="808" Height="305" Width="265" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:ProjectsIOMap" ZOrder="16" X="366" Y="70" Height="229" Width="231" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:ProjectsMailList" ZOrder="22" X="667" Y="70" Height="248" Width="237" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:ProjectsPart" ZOrder="12" X="973" Y="68" Height="381" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="275" />
<Shape ID="DesignTable:ProjectsHistory" ZOrder="21" X="1881" Y="31" Height="267" Width="251" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:SPMaster" ZOrder="17" X="365" Y="305" Height="305" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_Note" ZOrder="19" X="810" Y="455" Height="248" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:ProjectPartStatus" ZOrder="13" X="1081" Y="466" Height="362" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_ProjecthistoryD" ZOrder="18" X="680" Y="203" Height="248" Width="283" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:EETGW_ProjectToDo" ZOrder="15" X="89" Y="808" Height="305" Width="265" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_JobReport_AutoInput" ZOrder="3" X="702" Y="688" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_ProjectsSchedule" ZOrder="6" X="1574" Y="32" Height="324" Width="291" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_ProjectReson" ZOrder="4" X="1561" Y="590" Height="267" Width="269" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:vJobReportForUserList" ZOrder="15" X="590" Y="464" Height="115" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:vJobReportForUserList" ZOrder="14" X="590" Y="464" Height="115" Width="257" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:JobReport" ZOrder="2" X="1916" Y="400" Height="362" Width="259" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:vEETGW_Project_LayoutList" ZOrder="12" X="1257" Y="353" Height="187" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" />
<Shape ID="DesignTable:EETGW_Project_Layout" ZOrder="11" X="1200" Y="77" Height="263" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="173" />
<Shape ID="DesignTable:EETGW_DocuForm" ZOrder="9" X="358" Y="649" Height="229" Width="288" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:Auth" ZOrder="8" X="1552" Y="450" Height="324" Width="251" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:vEETGW_Project_LayoutList" ZOrder="11" X="1257" Y="353" Height="187" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" />
<Shape ID="DesignTable:EETGW_Project_Layout" ZOrder="10" X="1200" Y="77" Height="263" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="173" />
<Shape ID="DesignTable:EETGW_DocuForm" ZOrder="8" X="358" Y="649" Height="229" Width="288" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:Auth" ZOrder="7" X="1552" Y="450" Height="324" Width="251" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:EETGW_ProjectsSchedule_NoList" ZOrder="5" X="1362" Y="121" Height="96" Width="299" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:SCTable" ZOrder="10" X="76" Y="362" Height="144" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignSources:QueriesTableAdapter" ZOrder="21" X="2138" Y="50" Height="105" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
<Shape ID="DesignTable:SCTable" ZOrder="9" X="76" Y="362" Height="144" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignSources:QueriesTableAdapter" ZOrder="20" X="2138" Y="50" Height="105" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -516,7 +516,6 @@
this.tam.EETGW_ProjectResonTableAdapter = null;
this.tam.EETGW_ProjectsScheduleTableAdapter = null;
this.tam.EETGW_ProjectToDoTableAdapter = null;
this.tam.EETGW_SaveCostTableAdapter = null;
this.tam.JobReportTableAdapter = null;
this.tam.ProjectPartStatusTableAdapter = null;
this.tam.ProjectsHistoryTableAdapter = null;