This commit is contained in:
chikyun.kim
2019-07-25 08:29:57 +09:00
parent 5c77244a45
commit ae209e00af
85 changed files with 21568 additions and 4313 deletions

View File

@@ -268,7 +268,7 @@ namespace FCOMMON
var retval = new sItemInfo();
retval.idx = -1;
string sql = "select * from Items where idx = " + idx.ToString();
string sql = "select * from Items where gcode='" + FCOMMON.info.Login.gcode + "' and idx = " + idx.ToString();
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while(rdr.Read())
@@ -297,11 +297,12 @@ namespace FCOMMON
cn.Open();
string sql = "insert into Items" +
" ([cate],[sid],[model],[supply],[supplyidx],[name],[unit],[scale],[price],[wuid],[wdate])" +
" ([gcode],[cate],[sid],[model],[supply],[supplyidx],[name],[unit],[scale],[price],[wuid],[wdate])" +
" values " +
" (@cate,@sid,@model,@supply,@supplyidx,@name,@unit,@scale,@price,@wuid,@wdate)";
" (@gcode,@cate,@sid,@model,@supply,@supplyidx,@name,@unit,@scale,@price,@wuid,@wdate)";
var cmd = new SqlCommand(sql, cn);
cmd.Parameters.Add(new SqlParameter("@gcode", FCOMMON.info.Login.gcode));
cmd.Parameters.Add(new SqlParameter("@cate", "etc"));
cmd.Parameters.Add(new SqlParameter("@sid", info.sid));
cmd.Parameters.Add(new SqlParameter("@model", info.model));
@@ -317,8 +318,9 @@ namespace FCOMMON
var iCnt = cmd.ExecuteNonQuery();
if(iCnt == 1)
{
cmd.CommandText = "select isnull(idx,-1) from Items where [sid] = @sid";
cmd.CommandText = "select isnull(idx,-1) from Items where gcode=@gcode and [sid] = @sid";
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode));
cmd.Parameters.Add(new SqlParameter("sid", info.sid));
retval = (int)cmd.ExecuteScalar();
}
@@ -335,7 +337,7 @@ namespace FCOMMON
var retval = new sItemInfo();
retval.idx = -1;
string sql = "select * from Items where [sid] = '" + sid + "'";
string sql = "select * from Items where [gcode] = '" + FCOMMON.info.Login.gcode + "' and [sid] = '" + sid + "'";
var cmd = new SqlCommand(sql, cn);
var rdr = cmd.ExecuteReader();
while (rdr.Read())
@@ -370,8 +372,9 @@ namespace FCOMMON
var retval = new sItemInfo();
retval.idx = -1;
string sql = "select [id],[name],concat([name],'(',[id],')') as dispName,[dept],[email],[level],[tel] from Users " +
" where [id] <> 'dev' and dept like '%장비기술%' and dept like '%1파트%' order by [name]";
string sql = "select [id],[name],concat([name],'(',[id],')') as dispName,[dept],[email],[level],[tel] "+
" from Users " +
" where [id] <> 'dev' and dept like '%"+ FCOMMON.info.Login.dept.Replace("'","''") +"%' order by [name]";
var cmd = new SqlCommand(sql, cn);
var da = new SqlDataAdapter(sql, cn);
var ds = new System.Data.DataSet();
@@ -429,7 +432,7 @@ namespace FCOMMON
cn.Open();
var sql = "select isnull(SValue,'')" +
" from Common" +
" where Grp = '{0}' and code = '{1}'";
" where gcode='" + FCOMMON.info.Login.gcode + "' and Grp = '{0}' and code = '{1}'";
sql = string.Format(sql, GroupCode, code);
var cmd = new SqlCommand(sql, cn);
@@ -450,7 +453,7 @@ namespace FCOMMON
var cn = getCn();
cn.Open();
var sql = "select top 1 * from JobReport" +
" where isnull(pidx,-1)=" + projectIdx.ToString() +
" where gcode ='"+ FCOMMON.info.Login.gcode + "' and isnull(pidx,-1)=" + projectIdx.ToString() +
" and uid ='" + uid + "'" +
" order by pdate desc, idx desc";
var da = new SqlDataAdapter(sql, cn);
@@ -465,7 +468,7 @@ namespace FCOMMON
var cn = getCn();
cn.Open();
var sql = "select top 1 * from JobReport" +
" where isnull(projectName,'') like '" + prjName + "'" +
" where gcode='" + FCOMMON.info.Login.gcode + "' and isnull(projectName,'') like '" + prjName + "'" +
" and uid ='" + uid + "'" +
" order by pdate desc, idx desc";
var da = new SqlDataAdapter(sql, cn);
@@ -480,7 +483,7 @@ namespace FCOMMON
var cn = getCn();
cn.Open();
var sql = "select top 1 * from JobReport" +
" where isnull([type],'')='" + type + "'" +
" where gcode = '" + FCOMMON.info.Login.gcode + "' and isnull([type],'')='" + type + "'" +
" and uid ='" + uid + "'" +
" order by pdate desc, idx desc";
var da = new SqlDataAdapter(sql, cn);
@@ -503,7 +506,7 @@ namespace FCOMMON
cn.Open();
var sql = "select isnull(code,''),isnull(memo ,''),isnull(svalue,'')" +
" from common" +
" where grp = '" + GroupCode + "'" +
" where gcode='" + FCOMMON.info.Login.gcode + "' and grp = '" + GroupCode + "'" +
" and isnull(code,'') <> ''" +
" order by isnull(memo,'')";
var cmd = new SqlCommand(sql, cn);
@@ -524,8 +527,8 @@ namespace FCOMMON
var cn = getCn();
cn.Open();
var sql = "select isnull({1},''),isnull({2},'')" +
" from {0}";
if (where != "") sql += " where " + where;
" from {0} where gcode = '" + FCOMMON.info.Login.gcode + "' ";
if (where != "") sql += " and " + where;
if (order != "") sql += " order by " + order;
sql = string.Format(sql,table, col1, col2);
var cmd = new SqlCommand(sql, cn);
@@ -562,7 +565,7 @@ namespace FCOMMON
cn.Open();
var sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
" where gcode='" + FCOMMON.info.Login.gcode + "' and isnull({0},'') != '' ";
if (where != "") sql += " and " + where;
if (order != "") sql += " order by " + order;
@@ -603,7 +606,7 @@ namespace FCOMMON
cn.Open();
var sql = "select isnull(sum(hrs),0) as hrs,isnull(sum(ot),0) as ot,dbo.getWorkDayCount('{1}') as workday" +
" from JobReport" +
" where uid = '{0}' and substring(pdate,1,7) = '{1}'";
" where gcode='" + FCOMMON.info.Login.gcode + "' and uid = '{0}' and substring(pdate,1,7) = '{1}'";
sql = string.Format(sql, uid, yymm);
var cmd = new SqlCommand(sql, cn);
@@ -647,18 +650,19 @@ namespace FCOMMON
if(pic == null)
{
cmd2.CommandText = "insert into items(cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" +
"values(@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)";
cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" +
"values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)";
}
else
{
cmd2.CommandText = "insert into items(cate,name,sid,model,scale,unit,supply,supplyidx,price,image,wuid,wdate)" +
"values(@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@image,@wuid,@wdate)";
cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,image,wuid,wdate)" +
"values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@image,@wuid,@wdate)";
}
cmd2.Parameters.Clear();
cmd2.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode));
cmd2.Parameters.Add(new SqlParameter("cate", "--"));
cmd2.Parameters.Add(new SqlParameter("name", pumname));
cmd2.Parameters.Add(new SqlParameter("sid", sid));
@@ -675,7 +679,7 @@ namespace FCOMMON
if (retval == 0)
{
cmd2.CommandText = "select idx from Items where name = @name and sid = @sid and model = @model and wuid = @wuid and wdate = @wdate";
cmd2.CommandText = "select idx from Items where gcode=@gcode and name = @name and sid = @sid and model = @model and wuid = @wuid and wdate = @wdate";
retval = int.Parse(cmd2.ExecuteScalar().ToString());
}
else retval = -1;
@@ -693,9 +697,15 @@ namespace FCOMMON
var cn = getCn();
cn.Open();
var sql = "select {0} " +
" from {1} " +
" where gcode='" +FCOMMON.info.Login.gcode + "' and isnull({0},'') != '' ";
if(table.ToUpper() == "USERS")
sql = "select {0} " +
" from {1} " +
" where isnull({0},'') != '' ";
if (where != "") sql += " and " + where;
sql += " group by {0} " +
@@ -722,7 +732,7 @@ namespace FCOMMON
{
var cn = getCn();
cn.Open();
var sql = "select isnull(path_kj,'') " +
var sql = "select max(isnull(path_kj,'')) " +
" from UserGroup " +
" where dept = '" + dept + "'";
@@ -776,7 +786,7 @@ namespace FCOMMON
" isnull(supply,'') as supply, " +
" isnull(supplyidx,-1) as supplyidx" +
" from purchase " +
" where isnull(sid,'') <> '' and " +
" where gcode='" + FCOMMON.info.Login.gcode + "' and isnull(sid,'') <> '' and " +
" isnull(sid,'') <> '신규'" +
" and isnull(pumidx,-1) = -1 " +
" and len(sid) = 9" +
@@ -798,20 +808,22 @@ namespace FCOMMON
var idx = int.Parse(rdr["idx"].ToString());
//아이템정보에서 이 sid 가 1개 존재한다면 그것에 연결한다.
var sql2 = "select isnull(idx,-1) from Items where [sid] = '"+sid+"'";
var sql2 = "select isnull(idx,-1) from Items where gcode='" + FCOMMON.info.Login.gcode + "' and [sid] = '"+sid+"'";
cmd2.CommandText = sql2;
var itemdata = cmd2.ExecuteScalar();
if(itemdata != null && itemdata.ToString() != "-1")
{
cmd2.CommandText = "update purchase set pumidx = " + itemdata.ToString() + " where idx=" + idx.ToString();
cmd2.CommandText = "update purchase set pumidx = " + itemdata.ToString() +
" where gcode='" + FCOMMON.info.Login.gcode + "' and idx=" + idx.ToString();
retval += cmd2.ExecuteNonQuery();
}
else
{
cmd2.CommandText = "insert into items(cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" +
"values(@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)";
cmd2.CommandText = "insert into items(gcode,cate,name,sid,model,scale,unit,supply,supplyidx,price,wuid,wdate)" +
"values(@gcode,@cate,@name,@sid,@model,@scale,@unit,@supply,@supplyidx,@price,@wuid,@wdate)";
cmd2.Parameters.Clear();
cmd2.Parameters.Add(new SqlParameter("gcode", FCOMMON.info.Login.gcode));
cmd2.Parameters.Add(new SqlParameter("cate", "--"));
cmd2.Parameters.Add(new SqlParameter("name", pumname));
cmd2.Parameters.Add(new SqlParameter("sid", sid));

View File

@@ -108,7 +108,7 @@
<Compile Include="keyValuedataTable.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Info.cs" />
<Compile Include="FormUtil.cs" />
<Compile Include="Util_Form.cs" />
<Compile Include="Util.cs" />
<Compile Include="Util_Farpoint.cs" />
</ItemGroup>

View File

@@ -1,111 +0,0 @@
//190806 chi getWorkWeek 추가
//190805 chi MakeCSVString 추가
//180903 chi makefilepath/ ftppath 추가
//180807 chi rad2deg, deg2rad 추가
//180625 chi ToCharHexString,ToStringFromHexString 추가
//180624 chi isLocalApplication 추가
//180618 chi GetCSVBuffer 추가
//180614 chi map 명령어 추가
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Windows.Forms;
namespace FCOMMON
{
public static partial class Util
{
public static Boolean MakeDateString(string src, out string data)
{
data = src;
string dtStr = string.Empty;
DateTime dt;
int iv;
if (int.TryParse(src, out iv))
{
if (iv <= 31)
{
src = DateTime.Now.ToString("yyyy-MM-") + iv.ToString("00");
}
else if(src.Length <= 2)
{
//숫자이긴하나 32보다크면 오류로 한다.
return false;
}
}
src = src.Replace("/", "-");
if (src.Length < 4)
{
src = src.PadLeft(4, '0');
}
if(src.Length==4)
{
src = DateTime.Now.ToString("yyyy") + "-" + src.Substring(0, 2) + "-" + src.Substring(2);
}
if(src.Length == 6)
{
src = "20" + src.Substring(0, 2) + "-" + src.Substring(2, 2) + "-" + src.Substring(4, 2);
}
if(src.Length == 5 && src.Substring(2,1) == "-")
{
src = DateTime.Now.ToString("yyyy-") + src;
}
if (DateTime.TryParse(src, out dt))
{
data = dt.ToShortDateString();
return true;
}
else data = src;
return false;
}
public static void SetFormStatus(ref System.Windows.Forms.Form f, string formid, Boolean read)
{
var fi = new System.IO.FileInfo(info.Path + "formSetting\\" + formid + ".xml");
if (fi.Directory.Exists == false) fi.Directory.Create();
arUtil.XMLHelper xml = new arUtil.XMLHelper(fi.FullName);
if (!xml.Exist())
{
xml.CreateFile();
if (read) return; //읽기인데 파일이 없으므로 넘어간다.
}
if (read)
{
var leftStr = xml.get_Data("position", "left");
var topStr = xml.get_Data("position", "top");
int l = 0;
int t = 0;
if (!int.TryParse(leftStr, out l)) l = 0;
if (!int.TryParse(topStr, out t)) t = 0;
if (l != 0 || t != 0)
{
f.Location = new System.Drawing.Point(l, t);
}
var wStr = xml.get_Data("size", "width");
var hStr = xml.get_Data("size", "height");
int w = 0;
int h = 0;
if (!int.TryParse(wStr, out w)) w = 0;
if (!int.TryParse(hStr, out h)) h = 0;
if (w != 0 || h != 0)
{
f.Size = new System.Drawing.Size(w, h);
}
}
else
{
xml.set_Data("position", "left", f.Left.ToString());
xml.set_Data("position", "top", f.Top.ToString());
xml.set_Data("size", "width", f.Width.ToString());
xml.set_Data("size", "height", f.Height.ToString());
xml.Save();
}
}
}
}

View File

@@ -17,6 +17,16 @@ using System.Windows.Forms;
namespace FCOMMON
{
public enum eGroupPermission
{
menu_purchase=0,
menu_project,
menu_history,
menu_jago,
menu_equipment,
menu_workday,
}
public static class info
{
public struct sUserInfo
@@ -31,6 +41,9 @@ namespace FCOMMON
public string dept;
public string email;
public int level;
public string gcode;
public int gpermission;
public int permission;
}
public static sUserInfo Login;

View File

@@ -17,16 +17,57 @@ using System.Windows.Forms;
namespace FCOMMON
{
public static partial class Util
public static partial class Util
{
public static bool IsNumeric( string input)
#region "flag"
//public static Boolean getBit(ref Int32 flag_, int idx)
//{
// return getBit(ref (UInt32)flag_, idx);
//}
public static Boolean getBit( Int32 flag_, int idx)
{
var offset = (UInt32)(1 << (int)idx);
return ((flag_ & offset) != 0);
}
public static void toggleBit(ref Int32 flag_, int idx)
{
var curValue = getBit( flag_, idx);
setBit(ref flag_, idx, !curValue);
}
// public static void setBit(ref Int32 flag_, int idx, Boolean value)
//{
// setBit(ref (UInt32)flag_, idx, value);
//}
public static void setBit(ref Int32 flag_, int idx, Boolean value)
{
UInt32 ovalue = (UInt32)flag_;
if (value)
{
var offset = (UInt32)(1 << (int)idx);
ovalue = ovalue | offset;
}
else
{
var offset = (UInt32)(~(1 << (int)idx));
ovalue = ovalue & offset;
}
flag_ = (Int32)ovalue;
}
#endregion
public static bool IsNumeric(string input)
{
double data;
return double.TryParse(input, out data);
//return Regex.IsMatch(input, @"^\d+$");
}
public static string MakeFilterString(string[] cols,string search)
public static string MakeFilterString(string[] cols, string search)
{
@@ -36,9 +77,9 @@ namespace FCOMMON
if (filterStr != "") filterStr += " OR ";
filterStr += string.Format("isnull({0},'') like '%#%'", col);
}
return filterStr.Replace("#", search.Replace("'","''"));
return filterStr.Replace("#", search.Replace("'", "''"));
}
public static void CopyData(System.Data.DataRow drFrom, System.Data.DataRow drTo)
public static void CopyData(System.Data.DataRow drFrom, System.Data.DataRow drTo)
{
for (int i = 0; i < drFrom.ItemArray.Length; i++)
drTo[i] = drFrom[i];
@@ -246,7 +287,7 @@ namespace FCOMMON
#endregion
public static void SaveBugReport(string content, string subdirName = "BugReport")
{
@@ -463,9 +504,9 @@ namespace FCOMMON
si.Arguments = arg;
System.Diagnostics.Process.Start(si);
}
public static void RunDefaultMail(string to,string title,string content="",string cc="",string bcc="")
public static void RunDefaultMail(string to, string title, string content = "", string cc = "", string bcc = "")
{
string args = "mailto:" + to + "?";
string args = "mailto:" + to + "?";
if (title != "") args += "subject=" + title;
args += "&IsBodyHtml=true";
if (content != "")
@@ -475,7 +516,7 @@ namespace FCOMMON
}
if (bcc != "")
{
if (!args.EndsWith("?")) args += "&";
if (!args.EndsWith("?")) args += "&";
args += "bcc=" + bcc;
}
if (cc != "")
@@ -488,9 +529,9 @@ namespace FCOMMON
if (!args.EndsWith("?")) args += "&";
args += "bcc=" + bcc;
}
System.Diagnostics.Process.Start(args);
}

View File

@@ -15,6 +15,7 @@ namespace FCOMMON
public fBase()
{
InitializeComponent();
this.KeyPreview = true;
UseFormSetting = true;
this.FormClosed += fBase_FormClosed;
this.KeyDown += fBase_KeyDown;
@@ -40,8 +41,6 @@ namespace FCOMMON
{
var form = this as Form;
FCOMMON.Util.SetFormStatus(ref form, this.Name, true);
this.Show();
Application.DoEvents();
}
}
}

View File

@@ -0,0 +1,72 @@
namespace FCOMMON
{
partial class fSelectMonth
{
/// <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.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 4;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(284, 261);
this.tableLayoutPanel1.TabIndex = 0;
//
// fSelectMonth
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.tableLayoutPanel1);
this.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.KeyPreview = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "fSelectMonth";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "fSelectMonth";
this.Load += new System.EventHandler(this.fSelectMonth_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
}
}

View File

@@ -0,0 +1,41 @@
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 FCOMMON
{
public partial class fSelectMonth : Form
{
public int selectmon = -1;
public fSelectMonth()
{
InitializeComponent();
this.KeyDown += (s1,e1)=>{ if (e1.KeyCode == Keys.Escape) this.Close(); };
}
private void fSelectMonth_Load(object sender, EventArgs e)
{
for(int i = 1 ; i <=12;i++)
{
Button newbt = new Button();
newbt.Text = string.Format("{0}월",i);
newbt.Tag = i;
newbt.Click += newbt_Click;
newbt.Dock = DockStyle.Fill;
tableLayoutPanel1.Controls.Add(newbt);
}
}
void newbt_Click(object sender, EventArgs e)
{
var bt = sender as Button;
selectmon = int.Parse(bt.Tag.ToString());
DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}

View File

@@ -0,0 +1,120 @@
<?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>
</root>