From 86f899fa91e811415614dff1a699141144bfc802 Mon Sep 17 00:00:00 2001
From: quanzhou <quan.zhou@broconcentric.com>
Date: 星期五, 12 十二月 2025 13:25:37 +0800
Subject: [PATCH] S5上传mes逻辑修改及打印机逻辑修改和数据库存储数据增加
---
src/Bro.M141.Process/M141Config.cs | 511 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 505 insertions(+), 6 deletions(-)
diff --git a/src/Bro.M141.Process/M141Config.cs b/src/Bro.M141.Process/M141Config.cs
index 1cd2cdd..a115d5e 100644
--- a/src/Bro.M141.Process/M141Config.cs
+++ b/src/Bro.M141.Process/M141Config.cs
@@ -6,20 +6,43 @@
using Bro.Common.Model;
using Bro.M135.Common;
using Bro.Process;
+using MathNet.Numerics.Distributions;
+using Newtonsoft.Json;
using System.ComponentModel;
using System.Drawing.Design;
using System.Drawing.Imaging;
+using System.Drawing.Printing;
using System.Reflection;
using System.Windows.Forms.Design;
+using Windows.Services.Maps;
+using static Bro.Common.Helper.EnumHelper;
namespace Bro.M141.Process
{
public class M141Config : ProcessConfigBase
{
+
+
+ [Category("鎵撳嵃鏈洪厤缃�")]
+ [Description("鎵撳嵃鏈洪厤缃泦鍚�")]
+ [DisplayName("鎵撳嵃鏈洪厤缃泦鍚�")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<Printer>), typeof(UITypeEditor))]
+ public List<Printer> Printers { get; set; } = new List<Printer>();
+
+
+ [Category("鎵撳嵃鏈洪厤缃�")]
+ [Description("鏄惁鎵撳嵃灏佽鐮�")]
+ [DisplayName("鏄惁鎵撳嵃灏佽鐮�")]
+ public bool Isprint { get; set; } = false;
+
+
+
[Category("浜у搧鏄剧ず鐣岄潰閰嶇疆")]
[Description("瀛椾綋澶у皬")]
[DisplayName("瀛椾綋澶у皬")]
public int FontSize_p { get; set; } = 15;
+
[Category("浜у搧鏄剧ず鐣岄潰閰嶇疆")]
[Description("姣忚鍒楁暟")]
@@ -43,6 +66,14 @@
public List<MeasureBind> MeasureBindCollection { get; set; } = new List<MeasureBind>();
+ [Category("鐐规閰嶇疆")]
+ [Description("鐐规閰嶇疆闆嗗悎锛岄厤缃娴嬬殑宸ヤ綅锛屽浘鐗囩储寮曪紝鐩告満鍜屾娴嬭皟鐢ㄩ」鍏崇郴")]
+ [DisplayName("鐐规閰嶇疆闆嗗悎")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<MeasureBind>), typeof(UITypeEditor))]
+ public List<MeasureBind> MeasureBindCollection_Check { get; set; } = new List<MeasureBind>();
+
+
[Category("妫�娴嬭秴鏃惰缃�")]
[Description("妫�娴嬭秴鏃惰缃紝鑾峰彇妫�娴嬬粨鏋滄椂鐨勫厑璁告渶澶х瓑寰呮椂闂达紝鍗曚綅ms")]
@@ -57,6 +88,63 @@
[TypeConverter(typeof(SpecCodeSelectorConverter))]
public string CheckErrorSpecCode { get; set; } = "";
+
+ [Category("鐗瑰畾缂洪櫡閰嶇疆")]
+ [Description("S3鍜孲5鍏卞悓鍒ゆ柇缂洪櫡")]
+ [DisplayName("缂洪櫡鍚嶇О")]
+ [TypeConverter(typeof(GlobalDefectNameConverter))]
+ public string defectname { get; set; } = "";
+
+ private class GlobalDefectNameConverter : StringConverter
+ {
+ public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context)
+ {
+ return false;
+ }
+
+ public override bool GetStandardValuesSupported(ITypeDescriptorContext? context)
+ {
+ return true;
+ }
+
+ public override StandardValuesCollection? GetStandardValues(ITypeDescriptorContext? context)
+ {
+ using (var scope = GlobalVar.Container.BeginLifetimeScope())
+ {
+ var config = scope.Resolve<IProcessConfig>();
+
+ return new StandardValuesCollection((config as IDefectSwitcher).DefectSwitchCollection.Select(u => u.DefectName).ToList());
+ }
+ }
+ }
+
+ [Category("杩炵画NG鎶ヨ璁剧疆")]
+ [Description("杩炵画NG鎶ヨ鎬诲紑鍏炽�倀rue锛氬紑鍚繛缁璑G鎶ヨ銆�false锛氬叧闂繛缁璑G鎶ヨ鏈哄埗")]
+ [DisplayName("杩炵画NG鎶ヨ鎬诲紑鍏�")]
+ public bool IsEnableContinuousNGAlarm { get; set; } = true;
+
+ [Category("杩炵画NG鎶ヨ璁剧疆")]
+ [Description("杩炵画NG鎶ヨ鍦板潃銆傚嚭鐜拌繛缁璑G鏃讹紝涓婁綅鏈哄悜璇ュ湴鍧�鍐欏叆1锛屽彇娑堟椂锛屽悜璇ュ湴鍧�鍐欏叆0銆�")]
+ [DisplayName("杩炵画NG鎶ヨ鍦板潃")]
+ public int ContinuousNGAlarmAddress { get; set; } = 0;
+
+ //[Category("杩炵画NG鎶ヨ璁剧疆")]
+ //[Description("杩炵画NG鎶ヨ涓婁紶MES鐨勬柟娉曞湴鍧�銆�")]
+ //[DisplayName("杩炵画NG鎶ヨ涓婁紶MES鐨勬柟娉曞湴鍧�")]
+ //public string ContinuousNGAlarmMESFunc { get; set; } = "";
+
+ [Category("杩炵画NG鎶ヨ璁剧疆")]
+ [Description("杩炵画NG鎶ヨ鏄惁闇�瑕佷汉宸ュ浣�")]
+ [DisplayName("杩炵画NG鎶ヨ鏄惁闇�瑕佷汉宸ュ浣�")]
+ public bool IsOperatorReset { get; set; } = false;
+
+
+ [Category("杩炵画NG鎶ヨ璁剧疆")]
+ [Description("杩炵画NG鎶ヨ璁剧疆闆嗗悎銆傝缃繛缁璑G鎶ヨ鐨勫紑鍏筹紝绫诲瀷锛屾暟閲忓拰鏃堕棿闃堝�笺�傛坊鍔犳垨鍒犻櫎鐩戞帶闇�瑕佽蒋浠堕噸鍚敓鏁堛��")]
+ [DisplayName("杩炵画NG鎶ヨ璁剧疆闆嗗悎")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<ContinuousNGAlarm>), typeof(UITypeEditor))]
+ public List<ContinuousNGAlarm> ContinuousNGAlarmColletion { get; set; } = new List<ContinuousNGAlarm>();
[Category("浣嶇疆搴﹁缃�")]
[Description("浜у搧娴嬮噺鐐逛綅闆嗗悎")]
@@ -119,20 +207,191 @@
[DisplayName("褰撳墠鏍忓叿鐮�")]
public string basketcode { get; set; } = "NoRead";
+
+
+
+ [Category("鏍忓叿鏉$爜閰嶇疆")]
+ [Description("褰撳墠宸ュ崟鍙�")]
+ [DisplayName("褰撳墠宸ュ崟鍙�")]
+ public string zwoid { get; set; } = "";
+
+
[Category("鏍忓叿鏉$爜閰嶇疆")]
[Description("鏈珯鏄惁璇诲彇鏍忓叿鐮�")]
[DisplayName("鏈珯鏄惁璇诲彇鏍忓叿鐮�")]
public bool Isreadbasketcode { get; set; } = false;
- //[Category("鏁版嵁搴撻厤缃�")]
- //[Description("鏄惁涓虹粓鐐硅澶�")]
- //[DisplayName("鏄惁涓虹粓鐐硅澶�")]
- //public bool IsfinDevice { get; set; } = false;
+ [Category("PLC閰嶇疆")]
+ [Description("鎶ヨ閰嶇疆")]
+ [DisplayName("鎶ヨ閰嶇疆")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<PLCAlarms>), typeof(UITypeEditor))]
+ public List<PLCAlarms> PLCAlarm { get; set; } = new List<PLCAlarms>();
+
+
+ [Category("PLC閰嶇疆")]
+ [Description("蹇冭烦鍦板潃")]
+ [DisplayName("蹇冭烦鍦板潃")]
+ public int heartadd { get; set; } = 1505;
+
+
+
+ [Category("MES閰嶇疆")]
+ [Description("鏄惁涓婁紶MES")]
+ [DisplayName("鏄惁涓婁紶MES")]
+ public bool ISupMES { get; set; } = false;
+
+ [Category("MES閰嶇疆")]
+ [Description("鏄惁寮哄埗MES涓婁紶鎴愬姛")]
+ [DisplayName("鏄惁寮哄埗MES涓婁紶鎴愬姛")]
+ public bool ISokMes { get; set; } = false;
+
+ [Category("MES閰嶇疆")]
+ [Description("鏄惁涓婁紶NG鏁版嵁")]
+ [DisplayName("鏄惁涓婁紶NG鏁版嵁")]
+ public bool ISupNG { get; set; } = true;
+
+ [Category("MES閰嶇疆")]
+ [Description("鎺ュ彛閫夋嫨,0绡叿鎺ュ彛,1鏁版嵁涓婁紶鎺ュ彛,-1鎵�鏈夋帴鍙�")]
+ [DisplayName("鎺ュ彛閫夋嫨")]
+ public int MESchannel { get; set; } = 0;
+
+
+
+ [Category("MES閰嶇疆")]
+ [Description("璐﹀彿")]
+ [DisplayName("璐﹀彿")]
+ public string zuser { get; set; } = "aoiUser";
+
+ [Category("MES閰嶇疆")]
+ [Description("瀵嗙爜")]
+ [DisplayName("瀵嗙爜")]
+ public string zpassword { get; set; } = "Chia@aoi";
+
+ [Category("MES閰嶇疆")]
+ [Description("IP")]
+ [DisplayName("Ip")]
+ public string zIP { get; set; } = "10.2.20.114";
+
+ [Category("MES閰嶇疆")]
+ [Description("绔彛鍙�")]
+ [DisplayName("绔彛鍙�")]
+ public int zport { get; set; } = 15672;
+
+
+
+ //[Category("MES閰嶇疆")]
+ //[Description("澶囩敤鏍忓叿鐮�")]
+ //[DisplayName("澶囩敤鏍忓叿鐮�")]
+ //public string basketcode2 { get; set; } = "NoRead";
+
+ [Category("MES閰嶇疆")]
+ [Description("numpro")]
+ [DisplayName("numpro")]
+ [JsonIgnore]
+ public int numpro { get; set; } = 0;
+
+ [Category("MES閰嶇疆")]
+ [Description("mesnum1")]
+ [DisplayName("mesnum1")]
+ [JsonIgnore]
+ public int mesnum1 { get; set; } = 0;
+
+ [Category("MES閰嶇疆")]
+ [Description("mesnum2")]
+ [DisplayName("mesnum2")]
+ [JsonIgnore]
+ public int mesnum2 { get; set; } = 0;
+
+ [Category("MES閰嶇疆")]
+ [Description("mesnum3")]
+ [DisplayName("mesnum3")]
+ [JsonIgnore]
+ public int mesnum3 { get; set; } = 0;
+
+ [Category("MES閰嶇疆")]
+ [Description("mesnum4")]
+ [DisplayName("mesnum4")]
+ [JsonIgnore]
+ public int mesnum4 { get; set; } = 0;
+
+
+
+ [Category("MES閰嶇疆")]
+ [Description("plc搴忓彿鍜岀鍏风爜闆嗗悎")]
+ [DisplayName("plc搴忓彿鍜岀鍏风爜闆嗗悎")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<PlcAndBasketcode>), typeof(UITypeEditor))]
+ public List<PlcAndBasketcode> PlcAndBasketcodes { get; set; } = new List<PlcAndBasketcode>();
+
+
+ [Category("MES閰嶇疆")]
+ [Description("浜у搧ID闆嗗悎")]
+ [DisplayName("浜у搧ID闆嗗悎")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<ProductionID>), typeof(UITypeEditor))]
+ public List<ProductionID> Productioncode { get; set; } = new List<ProductionID>();
+
+ [Category("MES閰嶇疆")]
+ [Description("鏉$爜闆嗗悎")]
+ [DisplayName("鏉$爜闆嗗悎")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<MES_code>), typeof(UITypeEditor))]
+ public List<MES_code> MES_codes { get; set; } = new List<MES_code>();
}
+ public class MES_code: IComplexDisplay
+ {
+ [Category("閰嶇疆")]
+ [Description("MES涓嬪彂鐨勬潯鐮�")]
+ [DisplayName("鏉$爜")]
+ public string Printers_code { get; set; }
+ public string GetDisplayText()
+ {
+ return $"{Printers_code}";
+ }
+ }
+
+ public class ProductionID : IComplexDisplay
+ {
+ [Category("閰嶇疆")]
+ [Description("搴忓彿")]
+ [DisplayName("搴忓彿")]
+ public int Uptomesid { get; set; } = 0;
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("PID")]
+ public string PID { get; set; }
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("SEQUENCE")]
+ public string SEQUENCE { get; set; }
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("BasketCode")]
+ public string BasketCode { get; set; }
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("Zword")]
+ public string Zword { get; set; }
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("SN")]
+ public string SN { get; set; }
+
+ public string GetDisplayText()
+ {
+ return $"浜у搧{PID}涓婁紶鎵规搴忓彿{Uptomesid}";
+ }
+ }
public class WorkPositionSet : IComplexDisplay
{
@@ -195,7 +454,151 @@
+ public class PLCAlarms : IComplexDisplay
+ {
+ [Category("PLC閰嶇疆")]
+ [DisplayName("plc鍚嶇О")]
+ [Description("plc鍚嶇О")]
+ [TypeConverter(typeof(DeviceIdSelectorConverter<PLCBase>))]
+ public string plcname { get; set; } = "";
+
+
+
+ [Category("PLC閰嶇疆")]
+ [DisplayName("鏄惁鍚敤")]
+ [Description("鏄惁鍚敤")]
+ public bool isused { get; set; } = true;
+
+
+ [Category("鎶ヨ閰嶇疆")]
+ [Description("鎶ヨ璇︽儏")]
+ [DisplayName("鎶ヨ璇︽儏")]
+ [TypeConverter(typeof(CollectionCountConvert))]
+ [Editor(typeof(ComplexCollectionEditor<PLCAlarmDetails>), typeof(UITypeEditor))]
+ public List<PLCAlarmDetails> AlarmDetails { get; set; } = new List<PLCAlarmDetails>();
+
+ public string GetDisplayText()
+ {
+ return plcname + (isused ? "鍚敤" : "绂佺敤");
+ }
+ }
+
+ public class PLCAlarmDetails : IComplexDisplay, IImportFromFileInEditor
+ {
+ [Category("閰嶇疆")]
+ [DisplayName("棣栧湴鍧�")]
+ [Description("棣栧湴鍧�")]
+ public int address { get; set; }
+
+ [Category("閰嶇疆")]
+ [DisplayName("瀛愬湴鍧�")]
+ [Description("瀛愬湴鍧�")]
+ public int address2 { get; set; }
+
+ [Category("閰嶇疆")]
+ [DisplayName("鎶ヨ鍚嶇О")]
+ [Description("鎶ヨ鍚嶇О")]
+ public string alarmname { get; set; } = "";
+
+ [Category("閰嶇疆")]
+ [DisplayName("鎶ヨ绉嶇被")]
+ [Description("鎶ヨ绉嶇被")]
+ public string alarmtype { get; set; } = "";
+
+
+ [Browsable(false)]
+ [JsonIgnore]
+ public int value { get; set; } = -1;
+
+ public string GetDisplayText()
+ {
+ return alarmname;
+ }
+
+
+
+ public IImportFromFileInEditor GetImportObject(string data, out string msg)
+ {
+ msg = "";
+ PLCAlarmDetails ret = new PLCAlarmDetails();
+ try
+ {
+ var temchar = data.Split(',');
+ ret.alarmname = temchar[0];
+ ret.address = Convert.ToInt32(temchar[1]);
+ ret.address2 = Convert.ToInt32(temchar[2]);
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ return ret;
+
+ }
+
+ public bool ICSVOutput(object o)
+ {
+ try
+ {
+ if (o is List<PLCAlarmDetails> Pl)
+ {
+ SaveFileDialog saveFileDialog = new SaveFileDialog();
+ saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; // 璁剧疆鏂囦欢杩囨护鍣紝鍙樉绀篊SV鏂囦欢
+ saveFileDialog.Title = "Save CSV File"; // 璁剧疆瀵硅瘽妗嗘爣棰�
+ saveFileDialog.FileName = "PLCAlarms"; // 榛樿鏂囦欢鍚�
+ saveFileDialog.DefaultExt = "csv"; // 榛樿鏂囦欢鎵╁睍鍚�
+ string filePath = "";
+ if (saveFileDialog.ShowDialog() == DialogResult.OK)
+ {
+ filePath = saveFileDialog.FileName; // 鑾峰彇鐢ㄦ埛閫夋嫨鐨勬枃浠惰矾寰�
+ }
+ else
+ {
+ return false;
+ }
+
+ using (StreamWriter writer = new StreamWriter(filePath))
+ {
+ // 鍐欏叆鏍囬琛�
+ writer.WriteLine("鎶ヨ鍚嶇О,棣栧湴鍧�,瀛愬湴鍧�");
+ // 鍐欏叆鏁版嵁琛�
+ foreach (var row in Pl)
+ {
+ writer.WriteLine($"{row.alarmname},{row.address},{row.address2}");
+ }
+ }
+ }
+ }
+ catch
+ {
+
+ }
+ return true;
+ }
+
+
+
+
+
+
+ }
+
+
+ public class PlcAndBasketcode
+ {
+ [Category("閰嶇疆")]
+ [Description("搴忓彿")]
+ [DisplayName("搴忓彿")]
+ public int id { get; set; } = 0;
+
+ [Category("閰嶇疆")]
+ [Description("鏉$爜")]
+ [DisplayName("鏉$爜")]
+ public string code { get; set; }
+
+ }
public class MeasureBind : IComplexDisplay, IHalconToolPath
{
[Category("绱㈠紩閰嶇疆")]
@@ -213,6 +616,11 @@
[DisplayName("鍥惧儚绱㈠紩")]
[Description("搴斿鍗曟妫�娴嬮」闇�瑕佸娆℃媿鐓ф椂锛岃褰曞浘鐗囩殑绱㈠紩鍙凤紝浠�0寮�濮�")]
public int ImageIndex { get; set; } = 0;
+
+ [Category("鍚敤閰嶇疆")]
+ [DisplayName("鍥哄畾妫�娴嬮」")]
+ [Description("true锛氳妫�娴嬮」鏄浐瀹氭娴嬮」鐩紝蹇呴』鎵ц false锛氳妫�娴嬫槸鍙彉妫�娴嬮」鐩紝娴佺▼涓喅瀹氭槸鍚︽娴嬶紝榛樿涓嶆娴�")]
+ public bool IsFixed { get; set; } = true;
[Category("鍙栧儚璁剧疆")]
[DisplayName("鐩告満閫夋嫨")]
@@ -272,7 +680,10 @@
[DisplayName("OK鍥剧墖淇濆瓨寮�鍏�")]
public bool OKImageSwitch { get; set; } = false;
-
+ [Category("鍥剧墖淇濆瓨璁剧疆")]
+ [Description("璇ョ珯妫�娴嬪浘鐗囦繚瀛樻椂锛屼繚瀛樼殑鍥剧墖椤哄簭鍚庣紑")]
+ [DisplayName("鍥剧墖淇濆瓨椤哄簭鍚庣紑")]
+ public string ImageSaveSeq { get; set; } = "1";
public string GetDisplayText()
{
@@ -412,6 +823,43 @@
}
+ public class Printer : IComplexDisplay
+ {
+ [Category("鎵撳嵃鏈洪厤缃�")]
+ [DisplayName("鍚嶇О")]
+ [Description("鍚嶇О")]
+ [TypeConverter(typeof(DevicePrinter))]
+ public string name { get; set; } = "";
+
+
+ [Category("鎵撳嵃鏈洪厤缃�")]
+ [DisplayName("浣嶇疆")]
+ [Description("浣嶇疆")]
+ public string station { get; set; }
+
+
+ [Category("PLC閰嶇疆")]
+ [DisplayName("plc鍚嶇О")]
+ [Description("plc鍚嶇О")]
+ [TypeConverter(typeof(DeviceIdSelectorConverter<PLCBase>))]
+ public string plcname { get; set; }
+
+ [Category("PLC閰嶇疆")]
+ [DisplayName("鐘舵�佸湴鍧�")]
+ [Description("鐘舵�佸湴鍧�")]
+ public int addstate { get; set; }
+
+ [Category("PLC閰嶇疆")]
+ [DisplayName("缁撴灉鍦板潃")]
+ [Description("缁撴灉鍦板潃")]
+ public int addresult { get; set; }
+
+
+ public string GetDisplayText()
+ {
+ return name;
+ }
+ }
@@ -585,7 +1033,7 @@
string filePath = "";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
- filePath = saveFileDialog.FileName; // 鑾峰彇鐢ㄦ埛閫夋嫨鐨勬枃浠惰矾寰�
+ filePath = saveFileDialog.FileName; // 鑾峰彇鐢ㄦ埛閫夋嫨鐨勬枃浠惰矾寰�
}
else
{
@@ -611,6 +1059,36 @@
return true;
}
}
+
+
+ public class DevicePrinter : ComboBoxItemTypeConvert
+ {
+ public override Dictionary<string, string> GetConvertDict(ITypeDescriptorContext context)
+ {
+ Dictionary<string, string> table = new Dictionary<string, string>();
+ table[""] = "鏈寚瀹�";
+
+ PrintDocument print = new PrintDocument();
+ string sDefault = print.PrinterSettings.PrinterName;//榛樿鎵撳嵃鏈哄悕
+ foreach (string sPrint in PrinterSettings.InstalledPrinters)//鑾峰彇鎵�鏈夋墦鍗版満鍚嶇О
+ {
+ table[sPrint] = sPrint;
+ }
+ return table;
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
[Device("ImageCheck", "鍥剧墖妫�娴嬫搷浣滈厤缃�", EnumHelper.DeviceAttributeType.OperationConfig)]
public class ImageCheckOperationConfigBase : OperationConfigBase, IHalconToolPath, IImageCheckOperationConfig
@@ -690,6 +1168,27 @@
}
+ [Device("OfflineDemo", "绂荤嚎娴嬭瘯", DeviceAttributeType.OperationConfig)]
+ public class OfflineDemoOperationConfig : OperationConfigBase
+ {
+ [Category("鍥剧墖鐩綍")]
+ [Description("鍥剧墖鐩綍")]
+ [DisplayName("鍥剧墖鐩綍")]
+ [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))]
+ public string ImageFolder { get; set; }
+
+ [Category("妫�娴嬪姛鑳�")]
+ [Description("鍥剧墖鍦ㄦ壒閲忔祴璇曡繃绋嬩腑鏈�缁堝浘鐗囩粨鏋滀細瀛樺偍杈冩參闇�瑕佽缃欢鏃剁‘淇濆浘鐗囦笉琚祫婧愯嚜鍔ㄩ噴鏀�")]
+ [DisplayName("鍥剧墖瀛樺浘寤舵椂")]
+ public int SaveImageTime { get; set; } = 0;
+
+ [Category("妫�娴嬪姛鑳�")]
+ [Description("true锛氬惎鍔∣K娴嬭瘯 false锛氬惎鍔∟G娴嬭瘯")]
+ [DisplayName("鏄惁娴嬭瘯OK鍥剧墖")]
+ public bool IsOK { get; set; } = true;
+
+ }
+
public class RealTimeAdjustDataDetail : IComplexDisplay
{
[Category("鐐逛綅璁剧疆")]
--
Gitblit v1.8.0