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