songnan.zhang
3 years ago
34 changed files with 1188 additions and 163 deletions
@ -0,0 +1,161 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using QMAPP.MD.Entity; |
|||
using QMAPP.MD.DAL; |
|||
using QMAPP.FJC.DAL.ProductionPlan; |
|||
using QMAPP.FJC.Entity.ProductionPlan; |
|||
using QMAPP.FJC.Entity; |
|||
using System.Text.RegularExpressions; |
|||
|
|||
namespace QMAPP.FJC.TRACING.DataAnalyzers |
|||
{ |
|||
/// <summary>
|
|||
/// FIS标签数据解析类
|
|||
/// </summary>
|
|||
public class TJDPFISCodeAnalyzer : DAInterface.IDataAnalyzer |
|||
{ |
|||
static string regexp_full = "^770(C|M){2}([0-9])+[FL][RL][FR][RR][0-9]+$"; |
|||
static string regexp_prefix = "^D\\d{2}\\w+(?=[RF][LR]\\d{6})"; |
|||
static string regexp_position = "[RF][LR](?=\\d{6})"; |
|||
static string regexp_date = "(?<=[RF][LR])\\d{2}(10|11|12|0[1-9])(30|31|2\\d|1\\d|0[1-9])"; |
|||
static string regexp_seq = "\\d{5}$"; |
|||
|
|||
public void Analyze(DAInterface.DAObject data) |
|||
{ |
|||
|
|||
//string sn = data.DAValue.ToString();
|
|||
string orderno = data.DAValue.ToString(); |
|||
data.WorkOrderID = orderno; |
|||
|
|||
var plan = GetOrder(data, orderno); |
|||
data.OrderPlan = plan; |
|||
//data.WorkLocState.CurrentState.ORDERPLAN_PID = plan.PID;
|
|||
|
|||
|
|||
DAL.Produce.ProductDAL dal = new DAL.Produce.ProductDAL(); |
|||
var product = dal.GetNewestProductByOrderNO(orderno); |
|||
if (product == null) |
|||
{ |
|||
//throw new Exception("无法查到与此条码相关的产品数据!");
|
|||
} |
|||
//data.ObjectPID = product.PID;
|
|||
data.AnalyzedValue = plan.ORDERPLAN_NO; |
|||
//data.MaterialCode = plan.MATERIAL_CODE;
|
|||
|
|||
//var bindingdal = new DAL.QT.MaterialBindingDAL();
|
|||
//var binding = bindingdal.GetBindingTarget("MOULD", product.MATERIAL_TYPE);
|
|||
//if (binding == null)
|
|||
//{
|
|||
// throw new Exception("此产品无法在当前工位进行加工!");
|
|||
//}
|
|||
//data.MouldCode = binding.TARGET_CODE;
|
|||
} |
|||
|
|||
private static Entity.ProductionPlan.WorkOrder GetOrder(DAInterface.DAObject data, string orderno) |
|||
{ |
|||
var plandal = new DAL.FIS.OrderPlanDAL(); |
|||
var workorderdal = new DAL.ProductionPlan.WorkOrderDAL(); |
|||
//Entity.FIS.OrderPlan plan = null;
|
|||
Entity.ProductionPlan.WorkOrder order = null; |
|||
order = workorderdal.GetOneByOrderNO(orderno); |
|||
|
|||
if (order == null) |
|||
{ |
|||
if (!Regex.IsMatch(orderno, regexp_full)) |
|||
{ |
|||
//throw new Exception("FIS码格式不正确!");
|
|||
throw new Exception("未查询到此条码对应的计划工单,此工单可能已完成或删除!"); |
|||
} |
|||
string codeprefix = Regex.Match(orderno, regexp_prefix).Value; |
|||
string positioncode = Regex.Match(orderno, regexp_position).Value; |
|||
string date = Regex.Match(orderno, regexp_date).Value; |
|||
string seq = Regex.Match(orderno, regexp_seq).Value; |
|||
|
|||
string materialcode = new DAL.FIS.FISPhraseDAL().GetMESModulCode(codeprefix, positioncode); |
|||
if (string.IsNullOrWhiteSpace(materialcode)) |
|||
{ |
|||
throw new Exception("FIS码未能识别,FIS短语字典配置不准确或未更新!"); |
|||
} |
|||
|
|||
DateTime plandate |
|||
= new DateTime(2000 + int.Parse(date.Substring(0, 2)) |
|||
, int.Parse(date.Substring(2, 2)) |
|||
, int.Parse(date.Substring(4, 2))); |
|||
|
|||
plandal.BaseSession = data.DataSession; |
|||
var plan = new Entity.FIS.OrderPlan |
|||
{ |
|||
CREATEDATE = DateTime.Now, |
|||
COMPLETE_QTY = 0, |
|||
CREATEUSER = "", |
|||
MATERIAL_CODE = materialcode,//////////////////
|
|||
PID = Guid.NewGuid().ToString(), |
|||
PLAN_DATE = plandate,////////////
|
|||
PLAN_NO = orderno, |
|||
PLAN_SEQ = seq,//////////////////
|
|||
PLAN_STATE = "1", |
|||
PLANSOURCE = "0", |
|||
QTY = 1, |
|||
UPDATEUSER = "", |
|||
UPDATEDATE = DateTime.Now, |
|||
}; |
|||
|
|||
Pbom pbomcode = new PbomDAL().Get(new Pbom { MATERIAL_CODE = plan.MATERIAL_CODE }); |
|||
if (pbomcode != null) |
|||
{ |
|||
plan.PBOM_CODE = pbomcode.PBOM_CODE; |
|||
} |
|||
QMAPP.MD.Entity.ProcessRoute routecode = new QMAPP.MD.DAL.ProcessRouteDAL().RouteWithMaterial(plan.MATERIAL_CODE); |
|||
if (routecode != null) |
|||
{ |
|||
plan.ROUTE_CODE = routecode.ROUTE_CODE; |
|||
} |
|||
string workcentercode = new WorkCellDAL().GetWorkcenterWithMaterial(plan.MATERIAL_CODE); |
|||
if (workcentercode != null) |
|||
{ |
|||
plan.WORKCENTER_CODE = workcentercode; |
|||
} |
|||
//赋值新session后插入 zxd20171101
|
|||
plandal.Insert(plan); |
|||
|
|||
|
|||
|
|||
|
|||
var wodDal = new WorkOrderDAL(); |
|||
List<QMAPP.MD.Entity.ProcessRouteWorkCellSeq> list = new WorkCellDAL().GetFirstWorkCell(plan.PBOM_CODE); |
|||
|
|||
wodDal.BaseSession = data.DataSession; |
|||
|
|||
//DataRow workOrder = workOrderDt.NewRow();
|
|||
order = new WorkOrder(); |
|||
|
|||
order.PID = Guid.NewGuid().ToString(); |
|||
order.ORDERPLANID = plan.PID; |
|||
order.ORDERPLAN_NO = plan.PLAN_NO; |
|||
order.ORDER_TYPE = EnumGeter.WORKORDERTYPE.FIS.GetHashCode().ToString(); |
|||
order.SEQ = plan.PLAN_SEQ; |
|||
order.MATERIAL_CODE = plan.MATERIAL_CODE; |
|||
order.PBOM_CODE = plan.PBOM_CODE; |
|||
order.QTY = 1; |
|||
order.COMPLETE_QTY = 0; |
|||
order.PLAN_DATE = plan.PLAN_DATE; |
|||
order.SHIFT_CODE = plan.SHIFT_CODE; |
|||
order.WORKCENTER_CODE = plan.WORKCENTER_CODE; |
|||
//WorkCell workcellcode = new WorkCellDAL().Get(new WorkCell { WORKCENTER_CODE = info.WORKCENTER_CODE });
|
|||
order.WORKCELL_CODE = (list.Count > 0) ? list[0].WORKCELL_CODE : ""; |
|||
order.WORKLOC_CODE = ""; |
|||
order.REMARK = ""; |
|||
order.EQPT_NAME = ""; |
|||
order.EQPT_CODE = ""; |
|||
order.STATE = EnumGeter.WORKPLANSTATE.READY.GetHashCode(); |
|||
order.PRI = 1; |
|||
//order.UPDATEDATE = DateTime.Now;
|
|||
order.PRINTED = "1"; |
|||
wodDal.Insert(order); |
|||
} |
|||
return order; |
|||
} |
|||
} |
|||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,205 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Drawing; |
|||
using System.Windows.Forms; |
|||
using QMAPP.FJC.Entity.Operation; |
|||
using QMAPP.ServicesAgent; |
|||
using QMAPP.FJC.Entity.BZD; |
|||
using QMAPP.Entity; |
|||
using QMAPP.MD.Entity; |
|||
using System.Text; |
|||
|
|||
namespace QMAPP.WinForm.Forms.TianJin |
|||
{ |
|||
public partial class PlanRePrintForm : Form |
|||
{ |
|||
//获取服务代理
|
|||
QMAPP.ServicesAgent.ServiceAgent _agent = ClientContext.GetServiceAgent(); |
|||
|
|||
List<Material> _Material = null; |
|||
|
|||
Product _CurrentProduct = null; |
|||
private TJPrintPlanLabel _parentForm; |
|||
|
|||
|
|||
public PlanRePrintForm(TJPrintPlanLabel parentForm) |
|||
{ |
|||
InitializeComponent(); |
|||
infolabel.Text = ""; |
|||
infolabel.ForeColor = Color.Red; |
|||
_parentForm = parentForm; |
|||
} |
|||
|
|||
#region 打印按钮
|
|||
|
|||
/// <summary>
|
|||
/// 打印按钮
|
|||
/// </summary>
|
|||
/// <param name="sender"></param>
|
|||
/// <param name="e"></param>
|
|||
private void button1_Click(object sender, EventArgs e) |
|||
{ |
|||
try |
|||
{ |
|||
if (string.IsNullOrWhiteSpace(cbMaterial.Text)) |
|||
{ |
|||
infolabel.Text = "请选择物料号!"; |
|||
cbMaterial.Focus(); |
|||
return; |
|||
} |
|||
var data = DateTime.Now.ToString("yyyyMMddHHmmssfff"); |
|||
data = data.Substring(2, data.Length - 2); |
|||
|
|||
var MATERIAL_CODE = cbMaterial.Text.Split('|')[0]; |
|||
var MATERIAL_NAME = cbMaterial.Text.Split('|')[1]; |
|||
|
|||
List<LabelData> labels = new List<LabelData>(); |
|||
LabelData labeldata = new LabelData(); |
|||
|
|||
labeldata.MATERIALCODE = MATERIAL_CODE; |
|||
|
|||
string positioncode = GetNameCode(MATERIAL_NAME); |
|||
var book = _agent.InvokeServiceFunction<FJC.Entity.FIS.FISPhraseBook>("FISPhraseBLL_GetFisPhraseBook", MATERIAL_CODE , positioncode); |
|||
if (book != null) |
|||
{ |
|||
labeldata.Class = " " + book.Class.Substring(0, 2); |
|||
labeldata.Description = book.Text; |
|||
labeldata.OrderNo = book.CarModel + positioncode + data; |
|||
} |
|||
var mcresult = _agent.InvokeServiceFunction<DataResult<Material>>("MaterialBLL_Get", new Material { MATERIAL_CODE = MATERIAL_CODE }); |
|||
var material = mcresult.IsSuccess ? mcresult.Result : null; |
|||
if (material != null) |
|||
{ |
|||
labeldata.MaterialName = material.MATERIAL_SHORT; |
|||
labeldata.CarModel = material.PROJECTCODE; |
|||
} |
|||
labels.Add(labeldata); |
|||
|
|||
// _parentForm.planMATERIAL_CODE = MATERIAL_CODE;
|
|||
|
|||
PrintLabel(labels); |
|||
|
|||
} |
|||
catch (Exception exception) |
|||
{ |
|||
MessageBox.Show("打印失败!"); |
|||
throw; |
|||
} |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
private void PrintLabel(List<LabelData> labeldata) |
|||
{ |
|||
#region 计划标签打印
|
|||
//string xmlPath = System.Configuration.ConfigurationSettings.AppSettings["XmlName"].ToString(); ;
|
|||
//BarcodeLib.BarCodeGenerate g = new BarcodeLib.BarCodeGenerate( xmlPath);
|
|||
//bool b = g.PrintBarCode(_operationServiceParam.main.MAINCODE);
|
|||
QM.Assist.LabelInfo ll = new QM.Assist.LabelInfo(); |
|||
StringBuilder dataline = new StringBuilder(); |
|||
foreach (var label in labeldata) |
|||
{ |
|||
string[] texts = new string[6]; |
|||
|
|||
var sourcetext = label.Description.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); |
|||
|
|||
for (int i = 0; i < texts.Length && i < sourcetext.Length; i++) |
|||
{ |
|||
texts[i] = sourcetext[i]; |
|||
} |
|||
|
|||
//OrderNo,OrderType,PlanDate,Name,Class,CarModel,Text1,Text2,Text3,Text4,Text5,Text6
|
|||
dataline.AppendFormat("\"{0}\",\"{1}\",\"{2:yyyy-MM-dd HH:mm:ss}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\",\"{9}\",\"{10}\",\"{11}\",\"{12}\"\r\n", |
|||
label.OrderNo,//计划号
|
|||
label.OrderType,//计划类型(0:FIS,1:STOCK,2:INSERT)
|
|||
label.PlanDate,//计划日期
|
|||
label.MaterialName,//总成物料名称
|
|||
label.Class,//
|
|||
label.CarModel,//车型
|
|||
texts[0],//装配详细信息
|
|||
texts[1],//装配详细信息
|
|||
texts[2],//装配详细信息
|
|||
texts[3],//装配详细信息
|
|||
texts[4],//装配详细信息
|
|||
texts[5],//装配详细信息
|
|||
label.MATERIALCODE//
|
|||
); |
|||
|
|||
|
|||
} |
|||
|
|||
ll.BarCode = dataline.ToString().TrimEnd('\r', '\n'); |
|||
ll.PrinterName = ""; |
|||
QM.Assist.PrintUtil.LabelList2.Add(ll); |
|||
QM.Assist.PrintUtil pu = new QM.Assist.PrintUtil(); |
|||
pu.PrintLabel2(System.Configuration.ConfigurationManager.AppSettings["proPath"].ToString |
|||
(), System.Configuration.ConfigurationManager.AppSettings["PlanLabelTMPPath"].ToString |
|||
(), System.Configuration.ConfigurationManager.AppSettings["PlanLabelDATPath"].ToString |
|||
()); |
|||
|
|||
#endregion
|
|||
} |
|||
|
|||
public string GetNameCode(string Name) |
|||
{ |
|||
var Code = ""; |
|||
if (!string.IsNullOrEmpty(Name)) |
|||
{ |
|||
if (Name.Contains("左前")) |
|||
Code = "FL"; |
|||
else if (Name.Contains("左后")) |
|||
Code = "RL"; |
|||
else if (Name.Contains("右前")) |
|||
Code = "FR"; |
|||
else if (Name.Contains("右后")) |
|||
Code = "RR"; |
|||
return Code; |
|||
} |
|||
else |
|||
return null; |
|||
} |
|||
|
|||
#region 初始界面
|
|||
|
|||
/// <summary>
|
|||
///
|
|||
/// </summary>
|
|||
/// <param name="sender"></param>
|
|||
/// <param name="e"></param>
|
|||
private void PrintForm_Load(object sender, EventArgs e) |
|||
{ |
|||
_Material = _agent.InvokeServiceFunction<List<Material>>("MaterialBLL_GetMaterialList", new Material { REMARK = "REMARK" }); |
|||
foreach (var t in _Material) |
|||
{ |
|||
t.MATERIAL_NAME = t.MATERIAL_CODE + "|" + t.MATERIAL_NAME; |
|||
} |
|||
LoadAssyMaterial(); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region 加载总成物料
|
|||
|
|||
/// <summary>
|
|||
/// 加载总成物料
|
|||
/// </summary>
|
|||
private void LoadAssyMaterial() |
|||
{ |
|||
|
|||
//模腔号
|
|||
this.cbMaterial.DataSource = _Material; |
|||
this.cbMaterial.DisplayMember = "MATERIAL_NAME"; |
|||
this.cbMaterial.ValueMember = "MATERIAL_CODE"; |
|||
} |
|||
|
|||
|
|||
|
|||
#endregion
|
|||
|
|||
private void label2_Click(object sender, EventArgs e) |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,118 @@ |
|||
using System.Drawing; |
|||
|
|||
namespace QMAPP.WinForm.Forms.TianJin |
|||
{ |
|||
partial class PlanRePrintForm |
|||
{ |
|||
/// <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.label1 = new System.Windows.Forms.Label(); |
|||
this.button1 = new System.Windows.Forms.Button(); |
|||
this.infolabel = new System.Windows.Forms.Label(); |
|||
this.label5 = new System.Windows.Forms.Label(); |
|||
this.cbMaterial = new System.Windows.Forms.ComboBox(); |
|||
this.SuspendLayout(); |
|||
//
|
|||
// label1
|
|||
//
|
|||
this.label1.AutoSize = true; |
|||
this.label1.Font = new System.Drawing.Font("宋体", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); |
|||
this.label1.Location = new System.Drawing.Point(258, 58); |
|||
this.label1.Name = "label1"; |
|||
this.label1.Size = new System.Drawing.Size(169, 37); |
|||
this.label1.TabIndex = 0; |
|||
this.label1.Text = "条码补打"; |
|||
//
|
|||
// button1
|
|||
//
|
|||
this.button1.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); |
|||
this.button1.Location = new System.Drawing.Point(233, 257); |
|||
this.button1.Name = "button1"; |
|||
this.button1.Size = new System.Drawing.Size(221, 35); |
|||
this.button1.TabIndex = 5; |
|||
this.button1.Text = "打印"; |
|||
this.button1.UseVisualStyleBackColor = true; |
|||
this.button1.Click += new System.EventHandler(this.button1_Click); |
|||
//
|
|||
// infolabel
|
|||
//
|
|||
this.infolabel.AutoSize = true; |
|||
this.infolabel.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); |
|||
this.infolabel.ForeColor = System.Drawing.Color.Red; |
|||
this.infolabel.Location = new System.Drawing.Point(63, 328); |
|||
this.infolabel.Name = "infolabel"; |
|||
this.infolabel.Size = new System.Drawing.Size(0, 31); |
|||
this.infolabel.TabIndex = 6; |
|||
//
|
|||
// label5
|
|||
//
|
|||
this.label5.AutoSize = true; |
|||
this.label5.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); |
|||
this.label5.Location = new System.Drawing.Point(27, 164); |
|||
this.label5.Name = "label5"; |
|||
this.label5.Size = new System.Drawing.Size(130, 24); |
|||
this.label5.TabIndex = 2; |
|||
this.label5.Text = "门板物料号"; |
|||
//
|
|||
// cbMaterial
|
|||
//
|
|||
this.cbMaterial.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; |
|||
this.cbMaterial.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); |
|||
this.cbMaterial.FormattingEnabled = true; |
|||
this.cbMaterial.Location = new System.Drawing.Point(173, 152); |
|||
this.cbMaterial.Name = "cbMaterial"; |
|||
this.cbMaterial.Size = new System.Drawing.Size(470, 36); |
|||
this.cbMaterial.TabIndex = 7; |
|||
//
|
|||
// PlanRePrintForm
|
|||
//
|
|||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); |
|||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
|||
this.ClientSize = new System.Drawing.Size(665, 399); |
|||
this.Controls.Add(this.cbMaterial); |
|||
this.Controls.Add(this.infolabel); |
|||
this.Controls.Add(this.button1); |
|||
this.Controls.Add(this.label5); |
|||
this.Controls.Add(this.label1); |
|||
this.Name = "PlanRePrintForm"; |
|||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; |
|||
this.Text = "条码补打"; |
|||
this.Load += new System.EventHandler(this.PrintForm_Load); |
|||
this.ResumeLayout(false); |
|||
this.PerformLayout(); |
|||
|
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
private System.Windows.Forms.Label label1; |
|||
private System.Windows.Forms.Button button1; |
|||
private System.Windows.Forms.Label infolabel; |
|||
private System.Windows.Forms.Label label5; |
|||
private System.Windows.Forms.ComboBox cbMaterial; |
|||
} |
|||
} |
@ -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> |
Loading…
Reference in new issue